STM32F103RCT6+TIM6中断点亮LED灯

该博客详细介绍了如何使用STM32CubeIDE配置TIM6定时器,设置其计数周期为500ms,并通过中断每500ms翻转GPIO状态。主要步骤包括新建工程、配置TIM6参数、开启中断、编写中断回调函数及启动中断服务。
摘要由CSDN通过智能技术生成

1.STM32F103RCT6最小系统板

2.新建STM32CubeIDE工程参见 https://blog.csdn.net/zhenglu777999/article/details/124256688?spm=1001.2014.3001.5502icon-default.png?t=M3C8https://blog.csdn.net/zhenglu777999/article/details/124256688?spm=1001.2014.3001.5502

3.TIM6配置中,勾选Activated。Parameter Settings->Counter Settings->Prescaler(PSC - 16 bits value)设置为7199,Counter Period(AutoReload Register)设置为5000。因为TIM在APB1时钟线上,初始设置为72MHz,分频系数为7199+1=7200,所以计数器频率为10000Hz,计数周期为5000,则TIM6就会每500ms产生依次计数溢出。

 4.开启TIM6中断。勾选TIM6 global interrupt。

 

 5.点击“小齿轮‘,生成代码。

 6.在打开Core->Src->tim.c文件,添加代码。HAL_TIM_PeriodElapsedCallback()为UEV(Update Event)事件中断回调函数,内容需要用户编写。

/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if (htim->Instance == TIM6)
	{
		HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_2);
	}
}
/* USER CODE END 1 */

 7.在打开Core->Src->main.c文件,添加代码。在主程序中,开启TIM6中断。

  /* USER CODE BEGIN 2 */
  HAL_TIM_Base_Start_IT(&htim6);
  /* USER CODE END 2 */

 8.点击”小锤子“,编译代码,下载后,实验结果与普通点灯无异。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值