打印
[CW32F003系列]

CW32F003怎样延时1微秒

[复制链接]
1076|90
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tang87633187|  楼主 | 2023-2-24 13:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CW32F003怎样延时1微秒,DS18B20,DHT11需要使用

使用特权

评论回复
沙发
CW32TechSupport| | 2023-2-24 14:26 | 只看该作者
本帖最后由 pssyx 于 2023-2-24 15:16 编辑

建议使用sysTick实现1us延时,不断读取SysTick->VAL,比较两次读取值之间的差值,再根据sysTick的时钟,就可以计算出时间间隔。注意因SysTick->LOAD值引起的溢出;当然,也可以在代码中简单插入多个__NOP(),用示波器标定一下时间即可。

使用特权

评论回复
板凳
tang87633187|  楼主 | 2023-2-24 14:47 | 只看该作者
能不能提供代码

使用特权

评论回复
地板
xch| | 2023-2-24 16:46 | 只看该作者
用与主频 XX MHZ 的XX一样多的NOP指令。

使用特权

评论回复
5
jack821119| | 2023-2-24 17:14 | 只看该作者
void Delay_Us(uint32_t n)
{
    uint32_t i;

    SysTick->SR &= ~(1 << 0);
    i = (uint32_t)n * p_us;

    SysTick->CMP = i;
    SysTick->CNT = 0;
    SysTick->CTLR |=(1 << 0);

    while((SysTick->SR & (1 << 0)) != (1 << 0));
    SysTick->CTLR &= ~(1 << 0);
}

使用特权

评论回复
6
jack821119| | 2023-2-24 17:15 | 只看该作者
直接复制拿去用。

使用特权

评论回复
7
zhanan| | 2023-3-2 15:28 | 只看该作者
你这样问会把问题搞复杂的,单总线通信参数虽然是微秒单位,但不是1微秒。

使用特权

评论回复
8
angel_gph| | 2023-3-2 21:20 | 只看该作者
调nop个数

使用特权

评论回复
9
Henryko| | 2023-3-3 18:24 | 只看该作者
加NOP指令呗

使用特权

评论回复
10
youtome| | 2023-3-10 17:08 | 只看该作者
参考正点原子的代码。              

使用特权

评论回复
11
alvpeg| | 2023-3-10 17:51 | 只看该作者
直接for循环不能实现吗              

使用特权

评论回复
12
abotomson| | 2023-3-11 20:17 | 只看该作者
网上有很多的实现方法。              

使用特权

评论回复
13
adolphcocker| | 2023-3-11 20:54 | 只看该作者
可以通过定时器实现us的延时。              

使用特权

评论回复
14
wwppd| | 2023-4-4 13:56 | 只看该作者
定时器延时是最简单的 。              

使用特权

评论回复
15
kmzuaz| | 2023-4-4 14:10 | 只看该作者
CW32F003有例程代码可以参考吗

使用特权

评论回复
16
uptown| | 2023-4-4 14:16 | 只看该作者
CW32F003是多少主频              

使用特权

评论回复
17
usysm| | 2023-4-4 14:46 | 只看该作者
sysTick可以实现,参考网上的代码。

使用特权

评论回复
18
timfordlare| | 2023-4-4 15:37 | 只看该作者
精确延时的代码吗              

使用特权

评论回复
19
geraldbetty| | 2023-4-4 15:43 | 只看该作者
这个没有测试。              

使用特权

评论回复
20
burgessmaggie| | 2023-4-4 15:53 | 只看该作者
没有精确掩饰的 代码吗              

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

79

帖子

0

粉丝