野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 255|回复: 2

新手编写LED程序

[复制链接]
发表于 2019-10-30 22:55:57 | 显示全部楼层 |阅读模式
感觉程序没问题,可能是LED灯冲突了,导致颜色不对,绿色加蓝色=青色,然后加上红色就一直是青紫色闪啊闪...

这种问题如何解决?求各位大神指点。

int main(void)
{
while(1)
{
* (unsigned int *)0x40021018  |= ((1)<<3);
* (unsigned int *)0x40010C00  |= ((1)<<(4*0));
* (unsigned int *)0x40010C0C  &= ~(1<<0);
DelayMS()        ;
* (unsigned int *)0x40021018  |= ((1)<<3);
* (unsigned int *)0x40010C00  |= ((1)<<(4*0));
* (unsigned int *)0x40010C0C  |= (1<<0);
DelayMS()        ;
* (unsigned int *)0x40021018  |= ((1)<<3);
* (unsigned int *)0x40010C00  |= ((1)<<(4*1));
* (unsigned int *)0x40010C0C  &= ~(1<<0);
DelayMS()        ;
* (unsigned int *)0x40021018  |= ((1)<<3);
* (unsigned int *)0x40010C00  |= ((1)<<(4*1));
* (unsigned int *)0x40010C0C  |= (1<<0);
DelayMS()        ;
* (unsigned int *)0x40021018  |= ((1)<<3);
* (unsigned int *)0x40010C00  |= ((1)<<(4*5));
* (unsigned int *)0x40010C0C  &= ~(1<<0);
DelayMS()        ;
* (unsigned int *)0x40021018  |= ((1)<<3);
* (unsigned int *)0x40010C00  |= ((1)<<(4*5));
* (unsigned int *)0x40010C0C  |= (1<<0);
DelayMS()        ;
}
}

回复

使用道具 举报

发表于 2019-10-31 10:17:00 | 显示全部楼层
* (unsigned int *)0x40010C0C  |= (1<<0);    清0还写错了 &=~
我记得指南者的led是接在B0,B1,B5的
你所有的都是配置了ODR0 ,改成ODR1和ODR5
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-31 21:50:14 | 显示全部楼层
laomao 发表于 2019-10-31 10:17
* (unsigned int *)0x40010C0C  |= (1

感谢指点!
昨天晚上看的野火直接利用寄存器来控制led闪烁,没有完全弄明白,做了后面的作业,ODR没有改变位置,所以导致冲突了。今天看了后面两课,总算了解了输出数据寄存器的作用
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2020-8-9 04:18 , Processed in 0.167781 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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