stm32f103rct6延时1us的函数
时间: 2024-05-16 12:15:18 浏览: 25
以下是基于STM32F103RCT6芯片的延时1us的函数代码:
```c
void delay_us(uint16_t us)
{
uint16_t i;
for(i=0;i<us;i++)
{
uint16_t j=12; // 迭代次数,根据CPU主频和循环次数调整
while(j--);
}
}
```
注意,对于不同的CPU主频和循环次数,需要根据实际情况进行调整。如果需要更高精度的延时,可以使用定时器或者外部晶振等硬件来实现。
相关问题
STM32F103RCT6延时1u秒函数
在STM32F103RCT6上实现1微秒的延时函数需要使用内部定时器。下面是一个基于SysTick定时器的延时函数示例,可以实现1微秒的延时:
```c
void delay_us(uint32_t us)
{
uint32_t ticks;
uint32_t start = SysTick->VAL;
uint32_t reload = SysTick->LOAD;
ticks = us * (SystemCoreClock / 1000000);
while (ticks)
{
if ((SysTick->VAL <= start) || ((SysTick->VAL - start) > ticks))
{
ticks = 0;
}
else
{
ticks -= (SysTick->VAL - start);
start = SysTick->VAL;
}
}
}
```
该函数的实现方式是获取当前SysTick的VAL值,计算出需要延时的SysTick滴答数,然后在循环中等待,直到SysTick计数器减少了所需的滴答数。请注意,该函数需要在启用SysTick定时器后才能正常工作。
stm32f103rct6延时1毫秒的函数
在stm32f103rct6上,可以使用SysTick定时器来实现延时功能。以下是一个实现延时1毫秒的函数:
```c
void delay_ms(uint32_t ms)
{
uint32_t ticks = SystemCoreClock / 1000 * ms;
SysTick->LOAD = ticks - 1;
SysTick->VAL = 0;
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_ENABLE_Msk;
while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk))
;
SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
}
```
在这个函数中,我们首先计算出需要多少个SysTick时钟周期来实现指定的延时时间。然后,我们将这个值加载到SysTick定时器的LOAD寄存器中,并将VAL寄存器清零。接着,我们启用SysTick定时器,并使用一个循环来等待定时器计数器达到指定的延时时间。最后,我们禁用SysTick定时器,以便下一次使用。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)