野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 23199|回复: 6

用for循环延迟控制odr输出高低电平控制led灯闪烁,但是yizhi...

[复制链接]
发表于 2021-3-28 11:07:41 | 显示全部楼层 |阅读模式
控制pa8的odr但是led灯不闪,一直亮
#include "stm32f10x.h"
int main(void)
{
       
*(unsigned int*)(0x40021018)=0x0004;
*(unsigned int*)(0x40010804)|=(1<<0);
while(1)
        {
       
        *(unsigned int*)(0x4001080C)=0x0000;
                int i=0;
                        for(i=0;i<=10000;i++);
                *(unsigned int*)(0x4001080C)=0x0100;
                for(i=0;i<=10000;i++);
               
       
        }
}


回复

使用道具 举报

发表于 2021-3-29 14:29:03 | 显示全部楼层
如果寄存器地址没错的话,那就增加循环次数,可能10000太少
回复 支持 反对

使用道具 举报

发表于 2021-4-2 09:33:27 | 显示全部楼层
可能延时太短了察觉不到在闪
回复 支持 反对

使用道具 举报

发表于 2021-9-7 17:08:49 | 显示全部楼层
您好!请问解决了吗?遇到相同问题,感觉不是循环次数太少的原因
回复 支持 反对

使用道具 举报

发表于 2021-9-7 17:19:55 | 显示全部楼层
循环可能被编译器优化掉了,改为volatile int i=0试试看。
回复 支持 1 反对 0

使用道具 举报

发表于 2021-9-7 17:21:13 | 显示全部楼层
xxg1022 发表于 2021-9-7 17:08
您好!请问解决了吗?遇到相同问题,感觉不是循环次数太少的原因

循环可能被编译器优化掉了,改为volatile int i=0试试看。
回复 支持 反对

使用道具 举报

发表于 2021-9-8 10:26:03 | 显示全部楼层
hansome 发表于 2021-9-7 17:21
循环可能被编译器优化掉了,改为volatile int i=0试试看。

解决了!学习到了,感谢!
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-26 05:28 , Processed in 0.042766 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表