本专栏记录STM32开发各个功能的详细过程,方便自己后续查看,当然也供正在入门STM32单片机的兄弟们参考;
本小节的目标是,系统主频64 MHZ,采用高速外部晶振,通过定时器3 每秒中断控制 PB9 引脚输出高低电平,从而实现 LED 灯的亮灭。
原理:通过配置定时器3每1mS进入中断一次,每进入中断服务程序一次,增加一次计数,计数到达500,控制PB9引脚输出高或低电平,从而实现1S钟周期闪烁。。
涉及到的知识:配置UART引脚,定时器中断,STM32CubeMX的使用
1 新建工程
点击File 菜单下的New Project
选择芯片型号,如下图所示先输入芯片型号,目前这边输入STM32G030C8,
双击选择,就确定了芯片型号,界面会变成如下图所示
2 配置SWD下载引脚
如下图所示,在Pinout&Configuration 栏目的System Core 下,先点击SYS,再勾选Serial Wire 框,
配置好SWD 下载引脚设置:
3 配置GPIO输出
按下图 的1,2,3 步骤完成PB4 引脚配置成GPIO 输出设置:
配置成功后如下图所示:
4 配置RCC
如下图,先点击RCC,在HSE 配置中选择Crystal/Ceramic Resonator 外部晶振设
5 设置系统主频
如下图, 先点击Clock Configuration 栏目,按下图的1,2,3,4 步骤完成系统64MHZ 主频设置:
6 定时器配置
如下图的1,2,3,4 步骤完成定时器1ms 计时:
ETR2 外部触发输入(ETR)(仅适用TIM2,3,4),意思外接界的其他信号源。
如下图所示完成TIM3 中断使能:
7 生成工程
按照下图的步骤,进行项目配置,项目名称和路径设置等,生成项目的类型选择STM32CubeIDE(我这里以STM32CubeIDE为例,如果你要试用keil5,那就选择MDK-RAM,如果要使用makefile,就选择Makefile),注意项目名称和路径不要有中文名;
最后全部设置完毕后点击create code,生成项目代码:
生成的工程如下图所示:
8 增加代码实现每1S 控制PB9 引脚输出高或者低电平
如下图,如箭头所示实现1ms 中断回调函数中实现计数到500ms 后PB9 翻转输出,文章来源:https://www.toymoban.com/news/detail-835312.html
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)//1ms中断回调函数
{
TimeCounter++;
if(TimeCounter>=500)//500ms时间到
{
TimeCounter=0;
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);//LED反转输出
}
}
文章来源地址https://www.toymoban.com/news/detail-835312.html
到了这里,关于STM32G030C8T6:定时器1ms中断的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!