[CW32F003系列] 【CW32F003FxPx StartKit开发板】-04-定时器测试

[复制链接]
1236|6
 楼主| shenxiaolin 发表于 2024-5-31 17:00 | 显示全部楼层 |阅读模式
今天闲来没事,就打算吧串口和定时器都做了,但是再定时器的时候,自己有点马虎,把定时器当做计数器使用了,当然,主要是原厂的代码有点迷惑,也怪自己学艺不精,原厂的是以基本定时器产生计数,然后计数器来计数,相当与一个二层定时器,所以自己也很奇怪,还是一个网有发现了问题,这才得以正常使用,
另外就是我这里设置的系统时钟是48M,设置了48M前,需要设置Flash的延迟等待时间为两个时钟周期,因为系统时钟大于24M的情况下,都需要设置Flash延迟大于2个周期,否则会导致系统时钟配置失败,整个系统无法启动,其次,修改了时钟,对应的通信接口的时钟也需要跟着一起更改,不然发送出来的波特率就不对了,这是今天调试过程中遇到的问题,自己也总结了一下,分享给大家,希望对大家有所帮助。
好了,那就直接来上代码吧,代码很简单。
  1. #include "DRV_TIM.h"




  2. void TIM_Init(void)
  3. {

  4.   GTIM_InitTypeDef GTIM_InitStruct;
  5.         __RCC_GTIM_CLK_ENABLE();
  6.        
  7.   GTIM_InitStruct.Mode = GTIM_MODE_TIME;
  8.   GTIM_InitStruct.OneShotMode = GTIM_COUNT_CONTINUE;
  9.   GTIM_InitStruct.Prescaler = GTIM_PRESCALER_DIV16;//--48M/16=3M=3000 000
  10.   GTIM_InitStruct.ReloadValue = 2999;              //--2999个计数代表是1ms        
  11.   GTIM_InitStruct.ToggleOutState = DISABLE;
  12.   GTIM_TimeBaseInit(>IM_InitStruct);

  13.   GTIM_ITConfig(GTIM_IT_OV, ENABLE);
  14.        
  15.         NVIC_EnableIRQ(GTIM_IRQn);
  16.         NVIC_SetPriority(GTIM_IRQn,1);
  17.        
  18.   GTIM_Cmd(ENABLE);
  19. }



  20. unsigned int GTim_Count=0;

  21. void GTIM_IRQHandlerCallBack(void)
  22. {
  23.   if (GTIM_GetITStatus(GTIM_IT_OV))
  24.   {
  25.                 GTim_Count++;
  26.                 if(GTim_Count==500)
  27.                 {
  28.                   GTim_Count=0;
  29.                         GPIO_TogglePin(CW_GPIOA,GPIO_PIN_6);
  30.                 }
  31.     GTIM_ClearITPendingBit(GTIM_IT_OV);
  32.   }
  33. }

  34. void GTIM1_IRQHandler(void)
  35. {
  36.    GTIM_IRQHandlerCallBack();

  37. }



























caigang13 发表于 2024-6-2 17:56 来自手机 | 显示全部楼层
48MHz的主频,对于M0内核来说还是不错了。
小小蚂蚁举千斤 发表于 2024-6-11 16:13 | 显示全部楼层
主要还是看要实现的功能,一般情况下48M都能满足大部分环境
AdaMaYun 发表于 2024-6-13 20:31 | 显示全部楼层
48MHz的主频已经够用了
OKAKAKO 发表于 2024-6-21 21:21 | 显示全部楼层
把定时器当做计数器使用了还是看功能
中国龙芯CDX 发表于 2024-6-26 16:34 | 显示全部楼层
48MHz的主频够用了
jf101 发表于 2024-6-27 16:28 | 显示全部楼层
芯源的系统时钟大于24M的情况下,都需要设置Flash延迟大于2个周期,否则会导致系统时钟配置失败
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:运达电气-产品经理
简介:毕业于西南科技大学,从事MCU、MPU开发工作近8年,熟悉嵌入式软硬件开发流程,产品管理以及现场项目管理。

94

主题

1358

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部