在设计软件的时候,有的对时序要求比较严格,但是简单的延时函数又不能准确延时---STM32中有一个系统滴答时钟是不错的配置---
----第一部分是---向滴答时钟寄存器写初值,也就是要根据系统频率来递减----然后为0 则产生中断
void SysTick_Init(uint32_t a) //a-us
{
/* SystemFrequency / 1000 1ms中断一次
* SystemFrequency / 100000 10us中断一次
* SystemFrequency / 1000000 1us中断一次
*/
// if (SysTick_Config(SystemCoreClock / 1000000*a))//写初值---- ST3.0.0库版本
if (SysTick_Config(SystemCoreClock / 1000000*a)) //写初值----ST3.5.0库版本
{
while (1); //写初值失败---则进入while死循环
}
SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk; //关闭系统滴答时钟
}
----第二部分是---延时函数----
void Delay_us(__IO u32 nTime)
{
TimingDelay = nTime;//多少个基础节拍
SysTick_Init(1); //1us
SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; //使能系统滴答时钟---开始计时
while(TimingDelay != 0); //定时节拍结束
}
void Delay_ms(__IO u32 nTime)
{
TimingDelay = nTime;//多少个基础节拍
SysTick_Init(1000); //1ms
SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; //使能系统滴答时钟---开始计时
while(TimingDelay != 0); //定时节拍结束
}
---第三部分是---滴答时钟的中断函数---
void TimingDelay_Decrement(void) //节拍递减---在中断中使用
{
if (TimingDelay != 0x00)
TimingDelay--;
}
void SysTick_Handler(void) //---中断---
{
TimingDelay_Decrement(); //进一次中断递减一次
}
---第四部分---主函数---
int main(void)
{
SysTick_Init(); //初始化
Delay_us(10000); // 10000 * 10us = 100ms
}
上一篇:STM32 MDK 工程创建 图解步骤
下一篇:STM32 SPI NRF24L01复习整理
推荐阅读
史海拾趣
随着公司的发展,Coherent Inc.开始通过收购和整合来增强自身实力。1998年,公司以6500亿美金收购了Palomar Medical Technologies的部分业务,这一举措进一步拓宽了公司的业务范围和技术领域。此外,公司还陆续收购了多家具有技术优势的公司,如Positive Light和Lambda Physik,这些收购不仅增强了公司的技术实力,也使其在激光技术领域的地位更加稳固。
2023年,Coherent Inc.在纽交所上市敲钟,标志着公司的发展进入了新的阶段。这一事件不仅彰显了公司的实力和影响力,也为其未来的发展提供了更多的资本支持和发展空间。上市后的公司将继续加大在技术研发和市场拓展方面的投入,推动激光技术的进一步发展。
随着国内市场的逐渐饱和,ESTEK公司开始将目光投向国际市场。公司制定了详细的国际化战略,通过参加国际展会、拓展海外销售渠道等方式,积极开拓国际市场。同时,ESTEK公司还积极引进国外先进的技术和管理经验,不断提升自身的竞争力和国际化水平。在国际市场上,ESTEK公司的产品逐渐获得了认可,公司的国际影响力也日益增强。
作为一家有社会责任感的企业,DLK公司始终将社会责任和可持续发展作为企业发展的重要内容。公司积极参与公益事业和社会活动,为当地经济发展和社会进步做出了积极贡献。同时,DLK公司注重环保和节能工作,采用环保材料和生产工艺,减少了对环境的污染和破坏。通过履行社会责任和推动可持续发展,DLK公司赢得了社会的广泛认可和尊重。
请注意,以上故事框架仅供参考,具体的故事内容需要根据公司的实际情况和具体事件进行编写。
在Auris公司的发展历程中,2017年夏天的一次收购事件具有重要意义。Auris以8000万美元的价格收购了Hansen Medical,这是一家专门开发工具来操控导管的公司。这次收购不仅增强了Auris在手术机器人领域的技术实力,也为其后续的产品研发和市场拓展提供了更多可能性。
Curtis一直致力于环保和低碳技术的研发与应用。公司的产品和服务广泛应用于电动汽车、混合动力汽车等环保型交通工具中,为减少碳排放、推动绿色出行做出了积极贡献。同时,Curtis还积极参与各种环保活动和社会公益项目,通过实际行动践行环保理念。
目前程序支持的芯片是 Epson S1D15G00 (绿色排线没有大焊点,实验比较困难,国外也很少人弄) Philips PCF8833 改指令就能用 (棕色排线有大焊点,建议买这种) iccavr Atmega8L 上调试成功! 写了几个绘图函数,没时间写字符函 ...… 查看全部问答∨ |
|
1. 金属密度的问题,我使用的chartered工艺,现在采用扩充周围面积,解决了。但是我想问下,在PAD外围放了DUMMY金属,对以后COB测试的放置引线会不会产生影响,流片出来后是只有PAD裸露在外面,其他的有保护膜,是不是?? ...… 查看全部问答∨ |
请教大家2个关于充电器的问题: 一:不知道为什么我用的充电器总是烧前级220V近来的电阻; 二:就是我给锂电池充电,2节理电池串联8.4V,请问我若是想在充电器与电池之间加上一个保护二极管,请问充电器的电压要多大?(因为我测试发现二极管的压降 ...… 查看全部问答∨ |
请问linux内核中的hmac-sha1算法支持分块运算吗? 内存资源有限,文件太大的情况,想分块做多次hmac-sha1运算最终得出20字节的digest,自己写了个,但是还是想,能用内核自带的最好罗,就是不知道内核的hamc-sha1算法支不支持分块运算,哪位同学用过有经验的??????????谢谢哦… 查看全部问答∨ |
RT。 开发环境使用EVC或者VS2005,最好配置,学习快速上手。用wince的GDI界面不好看,我要的就是好看点,快速点。一定要支持反走样的。… 查看全部问答∨ |
非linux/winCE嵌入文件系统如何实现? 硬件环境 Nec6100 flash 32M/64M sdram 64M/128M OS uITRON4.0 要求实现一个文件系统,大家有相关经历的请赐教.… 查看全部问答∨ |
上海辰汉电子I.MX31 MDK2 与I.MX27 MDK1分析介绍 给大家分析一下几个ARM嵌入式开发板 市场上有S3C,TI,Freescale等不同品牌的产品,但是那一款比较适合做消费电子产品,下面我给大家做个分析。S3C的开发板产品价格相对较低,受到很多高校的钟爱,但是,要知道作为工程师必须使用和 ...… 查看全部问答∨ |