STM32F769NI-Discovery开发笔记(三)TIM定时器

开发环境:
开发板:STM32F769NI-Discovery
KEIL版本:5.33
STM32CubeMX版本:6.3.0
 
本篇主要讲STM32F769NI的定时器的实现,前面涉及到的外设配置本篇不在重复说明
不同的TIM功能不同,本篇只讲基础的定时器功能,所以只使用TIM6,详情请查看Reference manual
根据参考手册得出TIM6是挂在APB1的时钟下
0
 
根据系统时钟的配置得出当前APB1的tim时钟为108Mhz
0
 
配置TIM6定时器10ms触发一次的中断
定时器触发时间计算
1/(108000000/(107+1)/(9999+1) ) 单位s
0
开启TIM6中断服务,中断优先级根据自己需求更改
0
配置完成后生成代码
代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//定义定时器计数变量
uint16_t Tim6Count = 0;
//定时器回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  if(htim == &htim6)
  {      
     //10ms定时器计数,1s进行LED2反转    
    if(Tim6Count < 100)
    {
      Tim6Count++;
    }
    else
    {
      Tim6Count = 0;
      HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
    }
  }<br>}
 
int main(void)
{
  /* USER CODE BEGIN 1 */
 
  /* USER CODE END 1 */
 
  /* MCU Configuration--------------------------------------------------------*/
 
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
 
  /* USER CODE BEGIN Init */
 
  /* USER CODE END Init */
 
  /* Configure the system clock */
  SystemClock_Config();
 
  /* USER CODE BEGIN SysInit */
 
  /* USER CODE END SysInit */
 
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_USART1_UART_Init();
  MX_TIM6_Init();
  /* USER CODE BEGIN 2 */
  //config uart reveive buff
  HAL_UART_Receive_DMA(&huart1,&RxBuff,sizeof(RxBuff));
  //开启TIM6定时器
  HAL_TIM_Base_Start_IT(&htim6);
  /* USER CODE END 2 */
 
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
 
    /* USER CODE BEGIN 3 */
    //sys running state led
    HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
    HAL_Delay(200);
  }
  /* USER CODE END 3 */
}

 

至此,TIM6定时器功能完成啦
 
 
 
 
 
 
 
 
 
 
posted @   Jeremy_CJL  阅读(83)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示