STM32+HAL库实现外部脉冲计数
创作时间:
作者:
@小白创作中心
STM32+HAL库实现外部脉冲计数
引用
CSDN
1.
https://blog.csdn.net/weixin_66509332/article/details/141867081
本文将介绍如何使用STM32G0B1RET6开发板和HAL库实现外部脉冲计数功能。通过配置通用定时器TIM2,结合串口输出,可以实时监测外部脉冲信号的计数值。
硬件与软件环境
- 硬件开发板:STM32G0B1RET6
- 软件平台:Cubemx + Keil + VScode
1. 新建Cubemx工程
1.1 配置系统时钟RCC
1.2 配置定时器
选择通用定时器TIM2,时钟源选择ETR2(外部触发输入),对应的输入端口为PA0引脚。预分频系数设置为0,重装载值选择默认最大值以避免溢出。
1.3 配置信号输出端口
选择PA1引脚作为信号输出端口,设置为输出模式(GPIO_Output),自定义标签为OUT_SIGN,其他设置保持默认。
1.4 配置串口
配置串口用于输出计数结果。在Keil的魔术棒界面开启微库。
2. 代码实现
2.1 printf重定向
在usart.h中引用必要的头文件和函数声明:
#include "stdio.h"
int fputc(int ch,FILE *f);
在usart.c中实现printf重定向:
// 重定向printf
int fputc(int ch,FILE *f)
{
uint8_t temp[1]={ch};
HAL_UART_Transmit(&huart2,temp,1,2);
return ch;
}
2.2 main函数
int main(void)
{
/* USER CODE BEGIN 1 */
uint32_t count;
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM2_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start(&htim2); /* 开启定时器2,用于外部计数 */
printf("TIMER IS OK!\n");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_TogglePin(OUT_SIGN_GPIO_Port,OUT_SIGN_Pin); /* 每隔500ms翻转一次LED */
HAL_Delay(500);
count=__HAL_TIM_GET_COUNTER(&htim2); /* 读取计数值 */
printf("计数值:%d\n",count); /* 输出结果 */
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
3. 实验现象
使用杜邦线连接PA0和PA1引脚,观察串口输出结果。预期现象是串口会持续输出计数值,每当外部脉冲信号触发时,计数值会相应增加。
注意事项
- 确保外部脉冲信号正确连接到PA0引脚
- 串口输出需要在PC端使用串口助手软件进行监控
- 代码中未包含错误处理,实际应用中需要添加相应的异常处理机制
本文介绍了如何使用STM32G0B1RET6开发板和HAL库实现外部脉冲计数功能。通过配置通用定时器TIM2,结合串口输出,可以实时监测外部脉冲信号的计数值。希望对从事嵌入式开发的读者有所帮助。
热门推荐
工龄15年年假几天依据什么文件
眼睛红肿胀痛用什么眼药水
安全生产事故隐患分类与排查治理指南
老年人关节不好,吃氨糖是智商税?医生:这2类药物比氨糖有用
企业辞职及解雇流程全攻略:从合规到员工体验
脚后跟经常脱皮开裂,不一定是皮肤缺水,多半与这5种疾病有关
毛囊炎是怎样引起的
桥旅融合 | 花江峡谷大桥植入“神经系统” 首条智慧缆索成功架设
遇到鼻出血不要慌
减速机选型的详细步骤,减速机选型需要哪些参数
medium和middle,此“中间”非彼“中间”~
日本人学汉语难吗
三天排便促进计划:从基础调整到专业干预
探索人大信息化之路:技术革新如何提升立法质量
《三角洲行动》实用攻略:三十余个游戏技巧助你提升战力
汽车销售的流程:从接待到交付的六大关键步骤
电脑显示器黑屏但主机还在运行?4个方法帮你恢复正常
光学偏振的基础常识
内蒙古迎战寒潮:多措并举保障民生
银行卡境外使用的这些费用你知道吗?
二战苏联“基洛夫”级重巡洋舰作战实力浅析
钢铁巨兽的深海博弈:二战德国重型巡洋舰的破交作战之路
拙政园游玩攻略:交通、门票、路线及景点详解
医院手术室净化等级标准
产业园区有了职校教室 四川宜宾把人才培养融入现实生产场景
如何复制网站前端代码
【科普向】机动战士高达系列机体设定科普
成本上涨 供需混乱——专家分析美钢铝关税对美产业影响
国民经济学研究方向哪个
如何正确选择培养基种类