chifen 发表于 2015-11-15 21:01:18

【NUCLEO-L476RG开发】定时器 1S定时

本帖最后由 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,时钟设置为 80M5,生成工程文件,我用的是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,编译,烧写 运行
视频
https://v.youku.com/v_show/id_XMTM4NzI1NDcwOA==.html

Paderboy 发表于 2015-11-15 22:34:40

多谢分享。。

netlhx 发表于 2015-11-15 22:43:56

很好

超級稻草人 发表于 2015-11-16 08:30:48

多谢分享.:)

肽宰1 发表于 2015-11-16 10:02:11

多谢分享:lol:lol:lol
页: [1]
查看完整版本: 【NUCLEO-L476RG开发】定时器 1S定时