stm32延时us寄存器_【stm32f103】SysTick实现延时(寄存器版)-程序员宅基地

技术标签: stm32延时us寄存器  

一.SysTick寄存器介绍

SysTick要参照Programming manual手册,寄存器一共有4个,如图:

分别为STK_CTRL

STK_LOAD

STK_VAL

STK_CALIB校验,此基本用不到,或者水平没到那个程度,暂时用不到

二.程序分析

Delay_us

void Delay_us(unsigned int nTime)

{

SysTick->LOAD = 72*nTime;

SysTick->CTRL =SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_CLKSOURCE_Msk;

while(!(SysTick->CTRL&SysTick_CTRL_COUNTFLAG_Msk));

SysTick->CTRL =~SysTick_CTRL_ENABLE_Msk;

}

直到为bit 16为1的时候完成us的延时,因为systick只是一个24bit的计数器,所以总有个最大延时,所以采用delay ms去实现更多的延时

void Delay_ms(unsigned int nTime)

{

for(;nTime > 0;nTime--)

Delay_us(1000);

}

以上可以实现延时,测试有效

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35959366/article/details/112049246

智能推荐

一位软件工程师的6年总结_internetgetlastresponseinfo delphi-程序员宅基地

文章浏览阅读558次。一位软件工程师的6年总结 作者:成晓旭 (声明:欢迎转载,请保证文章的完整性) “又是一年毕业时”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位;想想自己也曾经意气风发、踌躇满志,不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方向,算是_internetgetlastresponseinfo delphi

QTableWidget常用信号的功能_qtablewidget信号-程序员宅基地

文章浏览阅读1.6k次,点赞5次,收藏6次。2023年11月18日,周六上午。_qtablewidget信号

numpy__python(第二个)_创建一个数组,数组的shape为(3,4),元素值在10-20之间-程序员宅基地

文章浏览阅读1.2k次。numpynumpy属性.shape 查看数组的形状.ndim 查看数组中有几个维度.size 查看数组中有几个数据.dtype 查看数组是什么类型.itemsize 查看数组中数据占几个字节import numpy as npa=np.arange(0,12).reshape(3,4) #查看a是什么形状print(a.shape) #查看a有几个维度print(a.ndim) #查看a有几个数据p_创建一个数组,数组的shape为(3,4),元素值在10-20之间

海尔电商峰值系统架构设计最佳实践_电商系统 项目团队 最佳实践-程序员宅基地

文章浏览阅读2.2k次。摘要:本文重点介绍了海尔电商平台的架构方案,也用不少篇幅阐述面临的场景和挑战,以及在架构方案决策过程中的关注点。其实作为一个优秀的电商平台,提供极致的用户体验、让技术最大化地创造价值,才是架构的终极目标。多数电商平台都会经历相似的过程,流量和业绩每年以几倍至十几倍的速度增长,每年都要接受几次大规模、全方位的系统检阅,例如双11、周年庆等购物狂欢节,期间流量和订单可能是日常的十几倍甚_电商系统 项目团队 最佳实践

【Flink】Flink CEP 案例_flink cep 监听zk-程序员宅基地

文章浏览阅读1.1k次。1.概述我们先产生一个输入流,这个输入Event流由Event对象和event time组成那么要使用EventTime,除了指定TimeCharacteristic外,在Flink中还要assignTimestampsAndWatermarks,其中分别定义了Eventtime和WaterMark,/** * 测试结果: * {start=[Event(id=1, name=start, money=1.0)], middle=[Event(id=5, name=middle,._flink cep 监听zk

c++中 getline(), cin.get(), cin.getline() 总结_getline(cin,ch[i]);-程序员宅基地

文章浏览阅读646次。cin.get() 与 cin.getline() 很相似,只是cin.get() 把分界符保留在输入流中_getline(cin,ch[i]);

随便推点

理解编译型语言和解释型语言的本质区别、Java是编译语言还是解释语言?_编写的程序属于编译语言吗-程序员宅基地

文章浏览阅读816次。非常推荐的一篇文章:某天周末,CPU和JVM聊了起来···比较Java和Nodejs虽然都是翻译后执行但是脚本语言由高级语言封装的指令集,而不是机器指令集。翻译为高级语言后由高级语言再执行而编程语言是直接翻译为机器指令集这应该就是区分编程语言和脚本语言的本质了Nodejs本质是C的上层封装,所以是脚本语言。编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了Java翻译执行的是汇编指令,所以是编译语言._编写的程序属于编译语言吗

linux shell 脚本记录日志_linux执行脚本打印生成日志-程序员宅基地

文章浏览阅读1.6k次。shell 脚本记日志_linux执行脚本打印生成日志

python爬虫scrapy框架爬取网页数据_python爬虫----(scrapy框架提高(1),自定义Request爬取)...-程序员宅基地

文章浏览阅读179次。最近看scrappy0.24官方文档看的正心烦的时候,意外发现中文翻译0.24文档,简直是福利呀~ 外链网址已屏蔽结合官方文档例子,简单整理一下:import scrapyfrom myproject.items import MyItemclass MySpider(scrapy.Spider):name = 'myspider'start_urls = ('外链网址已屏蔽','外链网址已屏蔽'..._利用python的request库或scrapy框架搭建爬虫网络,爬取内容

uvm中sequence和virtual sequence中objection的控制_seq body中的objection-程序员宅基地

文章浏览阅读740次。sequence中的objection的控制策略在整颗UVM树中,树的结点很多,理论来说在任何组件中都可以控制objection。一般在sequence和virtual sequence中,也有在scoreboard和test中。一般来说,在一个实际的验证平台中,通常会有以下两种objection的控制策略:第一种:在scoreboard中进行控制,但要注意当收集到指定数量的数据后,利用fork…join_any跳出循环。第二种:在sequence中提起sequencer的objection,当_seq body中的objection

南蛮图腾-程序员宅基地

文章浏览阅读365次。南蛮图腾描述自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果(看Hint),在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图腾,于是他找上了你的爷爷的爷爷的爷爷的爷爷……帮忙,作为一个好孙子的孙子的孙子的孙子……你能做到吗?格式输入格式每个数据一个数字,表示图腾的大小(此大小非彼大小) n<...

tensorflow遇到问题Check failed: PyBfloat16_Type.tp_base != nullptr-程序员宅基地

文章浏览阅读240次。tensorflow遇到问题Check failed: PyBfloat16_Type.tp_base != nullptr这个问题是tensorflow环境的numpy版本过低,需要升级numpy的版本。首先进入tensorflow环境,并卸载numpyactivate tensorflowpip uninstall numpy最后更新目前唯一存在的numpy:python -m pip install --upgrade numpy参考原文:https://my.oschina.net_check failed: pybfloat16_type.tp_base != nullptr

推荐文章

热门文章

相关标签