完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在led.c中更改如下
---------------------------------------------------------------------------------------- ------------------------就是把D全部改为B RCC->APB2ENR|=1<<2; //使能PORTA时钟 RCC->APB2ENR|=1<<3; //使能PORTB时钟 GPIOA->CRH&=0XFFFFFFF0; GPIOA->CRH|=0X00000003;//PA8 推挽输出 GPIOA->ODR|=1<<8; //PA8 输出高 GPIOB->CRL&=0XFFFFF0FF; GPIOB->CRL|=0X00000300;//PB.2推挽输出 GPIOB->ODR|=1<<2; //PB.2输出高 ---------------------------------------------------------------------------------------------- 然后在led.h中 ---------------------------------把D改为B #define LED0 PAout(8)// PA8 #define LED1 PBout(2)// PB2 结果在仿真中 都添加不了PORTB.2这个变量,为什么呢,就是改的原子的例程啊,还有什么别的设置没有注意到吗 也勾选了use simulation了,调了半夜了,呵呵。 |
|
相关推荐
9个回答
|
|
|
|
|
|
我照你的改了,仿真正常。
/**********************************/ led.h //LED端口定义 #define LED0 Aout(8)// A8 #define LED1 Bout(2)// B2 void LED_Init(void);//初始化 #endif /**********************************/ led.c //LED IO初始化 void LED_Init(void) { RCC->APB2ENR|=1<<2; //使能PORTA时钟 RCC->APB2ENR|=1<<3; //使能PORTB时钟 GPIOA->CRH&=0XFFFFFFF0; GPIOA->CRH|=0X00000003;//PA8 推挽输出 GPIOA->ODR|=1<<8; //PA8 输出高 GPIOB->CRL&=0XFFFFF0FF; GPIOB->CRL|=0X00000300;//PB2推挽输出 GPIOB->ODR|=1<<2; //PB2输出高 } |
|
|
|
|
|
|
|
呵呵,好像是软件问题,今天早晨好用了,可以添加A B了
可是又出现新问题了,当我只用PA输出流水灯的时候,发现仿真只能输入PORTA.X中的某一位,再输入其他位时,就输入不了了,出现UNKNOWN SIGNAL还有下面的信息是duplicate label,为什么呢,还有那个ODR寄存器的使用,我发现指定它为什么都管用 刚写的代码如下----------- GPIOA->CRL&=0XFFFF000F; GPIOA->CRL|=0X00003330; GPIOA->ODR|=1<<3; GPIOA->ODR|=1<<2; GPIOA->ODR|=1<<1; //这样写管用 GPIOA->ODR|=0X00001110;//这样写也管用 GPIOA->ODR|=0X00000000;//我什么都不指定竟然也在跑流水灯??? 我直接注释掉也可以的,ODR是控制输出电平的,不控制也可以吗? 还有就是原子的例程的hex只有1k左右,而我照着写出来竟然有3k,为什么呢 |
|
|
|
我发现了ODR是必要的,但是好像只用指定一次就行,然后注释掉重新烧代码也可以,难道烧代码的时候烧不掉这个?
|
|
|
|
又发现只要GPIOB->CRL|=0X30000000;这条语句和#define LED0 Bout(7)存在就可以实现流水灯闪灯的效果,其他比如GPIOB->CRL&=0X0FFFFFFF;可以全为F也行,ODR不要也可以,是这个实验太简单没有出问题吗?呵呵,初学stm32,让原子见笑了
|
|
|
|
代码是不是添加了printf?这个很占flash.
ODR,你可以自己软件仿真看看ODR在最终是什么值. 重烧代码之前,你有没有编译? 这个,CRL默认是0X4的,如果不清空,那么就是0X7.那就被你设置成了开漏输出了. 再看看我们的电路图,LED是低电平亮的.所以你的开漏输出,照样能控制LED.导致看起来没问题的效果. |
|
|
|
仿真的时候PORTA.1输入后,输入不了PORTA其他端口了,会显示unknown signal ,怎么解决啊?
|
|
|
|
有人说是mdk的问题,呵呵,仿不了了,直接上板,没问题,原子的教程真的很详细,辛苦了!!多谢啦
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1641 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1562 浏览 1 评论
988 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
691 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1608 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
655浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
525浏览 3评论
540浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
512浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 00:35 , Processed in 1.060560 second(s), Total 94, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号