前言1、工具使用2、前提知识1、LED5、计时器3、STM32Cubemx配置1、新项目2、时钟源和时间时钟树配置3、调试接口和时钟基密钥选择4、LED5配置6、LED5配置6
首先,使用计时器中断控制LED状态的定时反转。
一、使用工具STM32F103C8T6芯板
STM32Cubemx版本6.0.1
keil 5.31版
ST-Link
二.前知识1.LED
使用的核心板的LED接线图。
PC13端口输出低电平时,LED点亮。
2 .计时器STM32F1的通用计时器包括16位自动过载计数器(CNT ),该计数器由可编程预置器(PSC )驱动。 STM32F1的通用计时器可用于多种用途,如测量输入信号的脉冲宽度(输入捕获)和生成输出波形(输出比较和PWM ),但本教程不涉及其他功能,仅使用定时反转LED的状态
该16位自动重新加载计数器最大计数值是pow (2,16 )
如果将该计时器时钟配置在72M上、预分频器分频系数为PSC,则计时器计数频率为72m/(PSC 1)、计数值为ARR、计数时间为) PSC1 ) * (arr )/72us。
三. STM32Cubemx配置1 .新建工程
选择对应的单片机型号
2 .配置时钟源和时序树
3 .选择调试接口和时基
4 .配置led
将PC13端口置于输出模式,默认情况下关闭上拉(LED ),并将引线重新定义为LED。
5 .定时器配置
选择内部时钟,将36000分频(即0.5ms计数器加1 ),以便在500ms的时间点自动重新加载初始值。
打开计时器更新中断。
6 .生成并打开项目
点击生成工序打开
四、Keil编写代码1 .定时器中断/*用户代码begin2*/Hal _ mt DHL _ base _ start _ it (hti m1 ); //on计时器1中断/* USER CODE END 2 */2 .编写服务函数/*usercodebegin4*/void Hal _ mt DHL _ periodelapsedcallback (mt DHL _ handletypedeeder preventunusedargument (s ) compilation warning */if (hh/* note : thisfunctionshouldnotbemodified,when the callback is needed, 进入the Hal _ mt DHL _ periodelapsedcallbackcouldbeimplementedintheuserfile */* user code end4* /计时器的溢出中断后,是否为计时器1
3 .编码写入时,指示灯亮0.5s,熄灭0.5s,观察到循环往复
五、工程下载地址链接: https://pan.Baidu.com/s/1 nfy6tmp0D3 of 517 uuxs0GW
引出导线: wgp8