本帖最后由 chifen 于 2015-11-15 21:14 编辑
1,实现功能 ,用TIM6实现定时1S,让板载LED闪烁,LED用的是PA5脚 ,所以要把PA5设置成OUT方式 如图 2,把TIM6地方勾一下, 定时器Counter Period (AutoReload Register - 16 bits value ) 处设置为39999,定时中断处也要开启, 4,时钟设置为 80M 5,生成工程文件,我用的是keil5,所以成生这个工程文件,写一个文件名点OK,成功后点打开工程文件 6, 添加代码 , 框架生成了,TIM6要开启才能使用,所以要在 void MX_TIM6_Init(void)里或 MAIN里增加 HAL_TIM_Base_Start_IT(&htim6); 启动定时器,
- void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
- {
- if(htim_base->Instance==TIM6)
- {
- /* USER CODE BEGIN TIM6_MspInit 0 */
- /* USER CODE END TIM6_MspInit 0 */
- /* Peripheral clock enable */
- __TIM6_CLK_ENABLE();
- /* Peripheral interrupt init*/
- HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);
- HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
- /* USER CODE BEGIN TIM6_MspInit 1 */
- HAL_TIM_Base_Start_IT(&htim6);
- /* USER CODE END TIM6_MspInit 1 */
- }
- }
复制代码在stm32l4xx_it.c里定义一些变量, - /* USER CODE BEGIN 0 */
- uint16_t timer_cnt=0;
- uint8_t timer_bit=0;
- /* USER CODE END 0 */
复制代码找到TIM6中断的位置 ,加入下面代码 - void TIM6_DAC_IRQHandler(void)
- {
- /* USER CODE BEGIN TIM6_DAC_IRQn 0 */
- /* USER CODE END TIM6_DAC_IRQn 0 */
- HAL_TIM_IRQHandler(&htim6);
复制代码
7,编译,烧写 运行
视频
|