只需一步,快速开始
2471
博士
使用道具 举报
239
大学生
公孙璇娟 发表于 2014-3-7 11:19 主要是寄存器的值吧,就是cpu可能不知道这个变量已经被修改的值
yinhao 发表于 2014-3-7 11:22 那我这个延时函数的形参怎么也要定义为__IO(volatile)呢
yinhao 发表于 2014-3-7 11:32 代码如下: void Delay_us(__IO u32 nus) {
1万
山外メ雲ジ 发表于 2014-3-7 11:39 因为你的延时,仅仅是--和++ 这类的,编译器认为没有任何用处,所以删掉
公孙璇娟 发表于 2014-3-7 11:40 可能是因为你的while(us_count --)循环体为空,cpu优化了吧 你试试改成这样: void Delay_us(u32 nus) ...
432
yinhao 发表于 2014-3-7 11:58 改成这样,竟然OK了~ 不懂啊~~ void Delay_us(u32 nus) {
本版积分规则 发表回复 回帖后跳转到最后一页
联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 )
GMT+8, 2024-11-1 13:29 , Processed in 0.036081 second(s), 23 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.