10966|2

57

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【liklon玩GD32F350】六、通用定时器TIMER1 [复制链接]

GD32的timer资源还是挺丰富的,后续用到的只涉及到定时器的基本功能。就挑选一个通用定时器timer1来试试。


使用timer1来做一个1s触发中断的功能。
先看timer1的时钟:

CK_APB1最大是54Mhz 那么 apb1 prescaler 采用2分频, timer1,2,5,13 为 apb1 prescaler / 2 那么应该可以理解为CK_TIMERx为108Mhz。
再进一步配置定时器完成1s中断:
  1. void timer1_init()
  2. {
  3.     timer_parameter_struct timer_parameter =
  4.     {
  5.         .prescaler = 2160 - 1,
  6.         .alignedmode = TIMER_COUNTER_EDGE,
  7.         .counterdirection = TIMER_COUNTER_UP,
  8.         .period = 50000,
  9.         .clockdivision = TIMER_CKDIV_DIV1,
  10.     };
  11.     timer_init(TIMER1, &timer_parameter);
  12.    
  13.     timer_interrupt_enable(TIMER1, TIMER_INT_UP);
  14.     nvic_irq_enable(TIMER1_IRQn, 0, 2);
  15.   
  16.     timer_enable(TIMER1);
  17. }
复制代码

中断服务函数:
  1. void TIMER1_IRQHandler()
  2. {
  3.     uart1_write((uint8_t *)"liklon gd32f350\n\r", 17);
  4.     timer_interrupt_flag_clear(TIMER1, TIMER_INT_FLAG_UP);
  5. }
复制代码

在中断服务函数里一定要清中断标志。

1s相差3ms左右。



此帖出自GD32 MCU论坛

最新回复

是李凯龙吗  详情 回复 发表于 2018-9-6 10:51
点赞 关注
 

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
是李凯龙吗
此帖出自GD32 MCU论坛

点评

呵呵,这都被发现了  详情 回复 发表于 2018-9-6 11:06
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

呵呵,这都被发现了
此帖出自GD32 MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表