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

专门做店铺转让的网站/百度怎么推广自己的视频

专门做店铺转让的网站,百度怎么推广自己的视频,部落冲突做任务网站,学做网站开发具体操作步骤看这里:STM32CubeMX学习笔记(4)——系统延时使用_cubemx systick-CSDN博客 1、SysTick 初始化函数 SysTick 初始化函数由用户编写,里面调用了 SysTick_Config() 这个固件库函数,通过设置该固件 库函数的形…

具体操作步骤看这里:STM32CubeMX学习笔记(4)——系统延时使用_cubemx systick-CSDN博客


1、SysTick 初始化函数

SysTick 初始化函数由用户编写,里面调用了 SysTick_Config() 这个固件库函数,通过设置该固件
库函数的形参,就决定了系统定时器经过多少时间就产生一次中断。

2、SysTick 中断时间的计算


SysTick 定时器的计数器是向下递减计数的,计数一次的时间 TDEC=1/CLKAHB,当重装载寄存器中的值 VALUELOAD 减到 0 的时候,产生中断,可知中断一次的时间 T INT=VALUELOAD * TDEC=VALUE LOAD/CLK:sub:AHB,其中 CLKAHB =72MHZ。如果设置 VALUELOAD 为 72,那中断一次的时间 TINT=72/72M=1us。
SysTick_Config()的形我们配置为 SystemCoreClock / 100000=72M/100000=720,从刚刚分析我们知道这个形参的值最终是写到重装载寄存器 LOAD 中的,从而可知我们现在把 SysTick 定时器中断一次的时间 TINT=720/72M=10us。

3、SysTick 定时时间的计算

当设置好中断时间 TINT 后,我们可以设置一个变量 t,用来记录进入中断的次数,那么变量 t 乘
以中断的时间 TINT 就可以计算出需要定时的时间。

4、SysTick 定时函数
 

void Delay_us(__IO u32 nTime)
{
TimingDelay = nTime;
while (TimingDelay != 0);
}

5、SysTick 中断服务函数

中断服务函数调用了另外一个函数 TimingDelay_Decrement(),

void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00) {
TimingDelay--;
}
}

进入中断一次TimingDelay递减一次。

TimingDelay 的值等于延时函数中传进去的 nTime 的值,比如 nTime=100000,则延时的时间等于100000*10us=1s。

6、代码部分

使用CubeMX配置生成了初始化代码(时钟,GPIO)

应用代码需要自己添加上(延时函数的定义,可以放在新建一个bsp_SysTick.c文件)

  
#include "./systick/bsp_SysTick.h"static __IO u32 TimingDelay;/*** @brief  启动系统滴答定时器 SysTick* @param  无* @retval 无*/
void SysTick_Init(void)
{/* SystemFrequency / 1000    1ms中断一次* SystemFrequency / 100000	 10us中断一次* SystemFrequency / 1000000 1us中断一次*/if (HAL_SYSTICK_Config(SystemCoreClock / 100000)){ /* Capture error */ while (1);}
}/*** @brief   us延时程序,10us为一个单位* @param  *	@arg nTime: Delay_us( 1 ) 则实现的延时为 1 * 10us = 10us* @retval  无*/
void Delay_us(__IO u32 nTime)
{ TimingDelay = nTime;	while(TimingDelay != 0);
}/*** @brief  获取节拍程序* @param  无* @retval 无* @attention  在 SysTick 中断函数 SysTick_Handler()调用*/
void TimingDelay_Decrement(void)
{if (TimingDelay != 0x00){ TimingDelay--;}
}
/*********************************************END OF FILE**********************/

还要在中断服务函数中添加

void TimingDelay_Decrement(void)
{if (TimingDelay != 0x00){ TimingDelay--;}
}

然后就可以在主函数中使用自己定义的延时函数了。

7、问题

没什么问题

http://www.whsansanxincailiao.cn/news/30723654.html

相关文章:

  • 东莞市网络seo推广怎么样/seo百度发包工具
  • 微网站 下载/整站关键词快速排名
  • 做二手房销售要开自己的网站吗/百度官方下载安装
  • 青浦做网站公司/百度推广怎么收费
  • 基层政府门户网站建设的问题/山东最新资讯
  • 青岛网站建设微信群/站长工具果冻传媒
  • 网页设计logo素材/seo推广服务哪家好
  • 深圳购物网站建设价格/seo推广是什么工作
  • 社交网站cms/全网引流推广 价格
  • 上海有几个区域/青岛seo结算
  • 建设银行普卡申请网站/网络营销推广公司网站
  • xmapp wordpress/南京百度seo代理
  • 广东省备建设项目影响备案网站/互联网营销策略有哪些
  • 江苏南京建设厅网站/自己有网站怎么推广
  • 如何做网站写手/如何建网址
  • 微信网页网站怎么做/广告联盟app
  • 企业百度网站怎么做的/百度 营销推广怎么收费
  • 网站后台文章编辑器/seo站内优化
  • 网站制作一般多少钱/东莞网络营销优化
  • 网站建设这一行业怎样/如何在手机上制作网站
  • 成都网站的/自动点击器怎么用
  • 网站换模板/小白如何学电商运营
  • 网站图片轮播怎么做/企业网站类型有哪些
  • 自动生成ui界面/亚马逊排名seo
  • 旅游网站 div css 模板下载/公关公司经营范围
  • 淄博网站排名优化公司/营销软文的范文
  • 下班后做兼职任务网站/新闻发稿推广
  • 上海做网站吧/天津关键词优化专家
  • 建一个商城网站需要多少钱/智慧教育
  • 虾皮购物网站怎么做/优化方案的格式及范文