当前位置: 首页 > news >正文

做薆视频网站一个网站做数据维护3天正常吗

做薆视频网站,一个网站做数据维护3天正常吗,一个人做运营网站,免费推广引流GD32中的定时器 GD32E230中有七个定时器#xff0c;六种类型#xff0c;其中通用的L4版本有两个#xff0c;其他类型的各一个。 那我们就以通用L4这个类型来敲代码#xff0c;其他流程是通用的。 通用L4 虽然每种类型的定时器都有自己的结构框图#xff0c;但是其实大差…GD32中的定时器 GD32E230中有七个定时器六种类型其中通用的L4版本有两个其他类型的各一个。 那我们就以通用L4这个类型来敲代码其他流程是通用的。 通用L4 虽然每种类型的定时器都有自己的结构框图但是其实大差不差定时器来来回回不就那几个寄存器嘛自动重装载寄存器预分频器要输出个PWM就再来个输出比较。 要注意的就是通用L4这边的时钟源只有一个。 因此用GD32的定时器的时候要去手册翻翻对应的定时器里的介绍因为GD32里定时器种类还不少细节上还是有差异的。 那我们来看看给L4提供的时钟源是多少频率的这关系到我们后面参数的设置。 从左边AHB过来是72MHz给Timer0141516提供时钟之前经过一个分频器这个分频器是如果APB2的分频是1分频那么它也是1分频如果不是那么是2分频而APB2就是1分频因此它也是1分频也就是说没有减少我们的时钟频率因此给L4的时钟频率就是72MHz。 定时器溢出频率的公式跟STM32是一样的就是时钟频率/自动重装载寄存器的值1*预分频器的值1 固件库函数 rcu_periph_clock_enable(RCU_TIMER15) 定时器相关函数很多我们只挑这次用到的讲。 timer_init 初始化定时器参数一选择是哪一个定时器。 参数二传入一个结构体变量的指针。 我们来看看这个结构体。 通过配置预分频值和周期来控制定时器溢出的频率就用上面的公式把这个周期看成是自动重装载计数器就行。 对齐方式一般选择边缘对齐TIMER_COUNTER_EDGE。 计数方式选择向上计数TIMER_COUNTER_UPL4里也只能向上计数。 时钟分频因子这个是输入捕获的时候才用的到的我们可以不配。 重复计数器值是只溢出多少次之后再溢出才进一次中断的不过只有高级定时器才有我们也不配。 timer_enable 使能定时器当我们配置完定时器包括中断之后就可以使能了。 timer_disable 失能定时器。 timer_prescaler_config 配置预分频器的模式我们选择立即加载。 timer_interrupt_enable 使能中断中断源我们就选第一个更新中断这是不管哪一种定时器都能用的其他参数可以参考上面表格的说法。 timer_interrupt_flag_get 获取中断标志位一样是在中断处理函数中判断是哪个中断源触发的中断。 timer_interrupt_flag_clear 清除中断标志位除了在中断处理函数中使用我们在一开始配置定时器的时候就需要用一下否则会马上触发一次中断。 上面这些函数就足够我们进行最基础的一个计时了但是还有个问题就是中断中断都需要配置NVIC。 NVIC使能的函数我们在上一篇外部中断里说过了这边就直接把代码贴出来了。 nvic_irq_enable(TIMER15_IRQn,1); 最后一个就是中断处理函数了我们一样是从启动文件的汇编文件里去找。 秒表示例代码 #include gd32e23x.h #include systick.h #include OLED.huint16_t Z_Time_s 0 ,Z_Time_10ms 0;void TIMER15_IRQHandler(void){ if(timer_interrupt_flag_get(TIMER15,TIMER_INT_FLAG_UP) SET){ timer_interrupt_flag_clear(TIMER15,TIMER_INT_FLAG_UP); //清除中断标志位 if(Z_Time_10ms 100) {Z_Time_10ms 0;Z_Time_s;}} } int main(void){systick_config();OLED_Init();rcu_periph_clock_enable(RCU_TIMER15); //开启定时器时钟 timer_parameter_struct timer_initpara; timer_initpara.prescaler 200 -1; //预分频timer_initpara.alignedmode TIMER_COUNTER_EDGE; //边缘对齐timer_initpara.counterdirection TIMER_COUNTER_UP; //向上计数timer_initpara.period 3600 - 1; //周期timer_init(TIMER15,timer_initpara); //初始化定时器timer_prescaler_config(TIMER15, 1, TIMER_PSC_RELOAD_NOW);//设置预分频器为立即加载模式timer_interrupt_flag_clear(TIMER15, TIMER_INT_FLAG_UP); //清除中断标志位,否则一开始就会进一次中断nvic_irq_enable(TIMER15_IRQn, 1); //设置中断优先级timer_interrupt_enable(TIMER15, TIMER_INT_UP); //使能更新中断 timer_enable(TIMER15); //使能定时器OLED_ShowString(1,5,:);while(1){OLED_ShowNum(1,1,Z_Time_s,4);OLED_ShowNum(1,6,Z_Time_10ms,2);} } 我这边做个秒表的效果以精度在10ms因此我们需要每秒定时器溢出中断100次。 因为时钟源是72MHz因此需要让72MHz去除以周期1再除以预分频1最终等于100即可。 最后一点要注意的就是这俩寄存器是16位的因此设置周期和预分频的值的时候要注意不要超过65535了。 大家可以配合上个文章的外部中断在这个秒表的基础上加几个按钮实现暂停继续清零等功能。就当是课后作业了bushi
http://www.dnsts.com.cn/news/198469.html

相关文章:

  • 石家庄模板建站做网站需要花钱吗
  • 服务好 售后好的网站建设公司网站改版方案盛世
  • 网站制作里面链接怎么做公司网站制作的费用
  • 网站开发php教程商务网站规划与建设心得
  • 为什么几年前做的网站视频看不了公司建一个网站多少钱
  • 网站设置反爬虫的主要原因网站建设需要收集资料吗
  • 国外免费个人网站空间海西州网站建设公司
  • 贸易公司怎么做网站比较好wordpress站点大全
  • 现在做网站开发吗盐城永祥建设有限公司网站
  • 宿州市美丽乡村建设网站网站项目建设合同
  • 正规做网站的公司全网营销培训公司
  • 汕头网站上排名北龙建设集团网站
  • 网站开发设计山西谷歌seo
  • 建设部执业资格注册中心网站查询一级做爰片c视频网站
  • 个人可以备案网站的内容wordpress交互插件
  • 网站js修改头像代码大型网站建设的难点是什么
  • 网站渗透入侵全部教程建筑人才兼职网
  • 目录网站做外链大连做网站的企业
  • 创建网站代码是什么问题左侧导航网站
  • 短视频营销现状seo推广培训课程
  • 微信网站平台建设企业网站做凭安认证有用吗
  • 廊坊建站模板系统销帮帮crm
  • 怎么做像京东一样的网站北京网站开发费用
  • 网站更换服务器怎么做哪些行业做网站多
  • 做网站后台的时候要注意什么佛山市城乡和住房建设局网站
  • 衡水网站seo做淘宝店标的网站
  • 成都网上注册公司流程外贸seo教程
  • 酒店预定类网站建设网址链接
  • 太平洋保险网站做的这么烂贵阳网站定制建设开发 首商网
  • 华为al00手机价格是多少钱培训机构优化