[STM32F1] stm32软件延时函数

[复制链接]
538|8
 楼主| zerorobert 发表于 2023-3-30 18:31 | 显示全部楼层 |阅读模式
一种使用systemtick 或者直接等待
/*****************************************************************
* @brief
* @param
* @retval
*******************************************************************/
void TimeDelay(__IO uint32_t nCount)
{
while(nCount--) {
}
}
/**
* @brief Inserts a delay time.
* @param nTime: specifies the delay time length, in milliseconds.
* @retval None
*/
void Delayms(__IO uint32_t nTime)
{
uwTimingDelay = nTime;
while(uwTimingDelay != 0);
}
stm32程序不能延时执行函数,请问问题出在哪呢?谢谢。
timer定时器中断函数贴出来看看,没看到你对time参数进行运算
stm32中Delay()函数延时的时间是怎么计算的
首先取决于你的时钟频率选定为多少。
以24位的SysTick定时器为例,在3.5版本的库函数(该版本简化了对该计时器的配置函数)中,调用函数 SystemInit(); 初始化SysTick计时器为STM32主时钟的8分频,假设主频达到72MHz
则此时计时器的频率为9MHz,即1秒可 向下记数 9000000(9M)次。
f=9MHz,所以周期为T=1/f,即1/9000000。
再调用SysTick_Config(SystemCoreClock / X) (X表示一个数,填入多少就能获得 1/X 秒数)
delay中调用这些便可实现精确计时。
例如
void Delay(vu32 count)
{ 全局变量A = count };
然后再在stm32f10x_it.c 文件中的定义
void SysTick_Handler(void)
{
if(全局变量!=0)
全局变量--;
}
就可以实现计时了。

Uriah 发表于 2024-2-5 07:15 | 显示全部楼层

这些电流环路的布线
Uriah 发表于 2024-2-5 07:15 | 显示全部楼层

这些电流环路的布线
帛灿灿 发表于 2024-2-5 09:11 | 显示全部楼层

所有开关电源设计
周半梅 发表于 2024-2-5 12:10 | 显示全部楼层

主从定时器门控的方式
Pulitzer 发表于 2024-2-5 13:13 | 显示全部楼层

在主要开关电源拓扑中主要的电流环路
童雨竹 发表于 2024-2-5 15:09 | 显示全部楼层

当PWM频率较高时,频繁的中断将影响程序运行的效率
Clyde011 发表于 2024-2-5 17:15 | 显示全部楼层

布置PCB的时候,电源地的安排要十分小心
公羊子丹 发表于 2024-2-5 18:08 | 显示全部楼层

输出了5个频率为10KHz的PWM脉冲
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

1965

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部