1.STM32F103RCT6最小系统板
2.新建STM32CubeIDE工程参见 https://blog.csdn.net/zhenglu777999/article/details/124256688?spm=1001.2014.3001.5502https://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.点击”小锤子“,编译代码,下载后,实验结果与普通点灯无异。