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,结合串口输出,可以实时监测外部脉冲信号的计数值。希望对从事嵌入式开发的读者有所帮助。
热门推荐
八种锻炼拍摄技巧的方法和手段
什么是理赔申请指南
理赔准备材料是什么
秋季小儿感冒护理指南
男人睡眠质量差的原因及改善方法
不止卢沟桥,北京的古桥个个大有来头,您还了解几座?
盘点地球上的11种长寿动物:起码能存活上百年,甚至停止衰老过程
新规实施!外墙幕墙计入建筑面积,影响巨大!
揭秘车牌号背后的文化与意义
春季防溺水,这节“必修课”很重要!
硫酸氢钠:性质、用途与安全信息详解
企业银行账户使用的规定主要有哪些
“假官司”是怎么暴露的?
Excel表格中计算面积的多种方法
从《六姊妹》到千万女性,新司法解释如何守护婚姻中的女性权益?
婴儿正常几个月长牙要注意什么
3·15信息打假丨谁在左右你的判断?资本市场虚假信息调查
为什么睡觉喜欢把枕头太高(枕头高度多少才合适?)
股票发行的基本流程包括哪些步骤?
欧阳修:千古文豪的传奇人生
黄晓明个人资料及杨颖家庭背景介绍
深基坑支护工程设计与施工技术的应用与发展
《上古卷轴》背景故事世界观及种族魔神介绍 上古卷轴系列介绍
探秘五台山叶斗峰,叶斗峰的绝美风光与佛教文化之旅
如何优化股票投资策略?这些策略有哪些风险和收益?
DDoS攻击与防护指南
豆腐制作中的化学原理
古代银两与现代货币的价值对比
查理·芒格最为精华的10条人生智慧箴言(值得珍藏与反复领悟)
油价调整窗口时间表对消费者有哪些影响