完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在IAR用 PD_ODR_ODR3 = CPU_CCR_C; 无法赋值成功,仿真中看到 CPU_CCR_C的值是有变化的,但是赋值到PD_ODR_ODR3时,PD_ODR_ODR3总是等于0。PD_ODR_ODR3=1;这样正常赋值是没有问题。希望知道的大神指点一下!
|
|
相关推荐
1个回答
|
|
在IAR中,使用PD_ODR_ODR3 = CPU_CCR_C; 无法成功赋值的原因可能有以下几点:
1. 寄存器定义问题:首先,请确保PD_ODR_ODR3和CPU_CCR_C的寄存器定义是正确的。检查你的项目中的头文件,确保这些寄存器的地址和位宽设置正确。 2. 编译器优化:IAR编译器可能会对代码进行优化,导致某些赋值操作被省略。尝试在赋值操作前后添加volatile关键字,以防止编译器优化掉这个赋值操作。例如: ```c volatile uint32_t temp = CPU_CCR_C; PD_ODR_ODR3 = temp; ``` 3. 访问权限问题:确保你的代码具有访问这些寄存器的权限。有些寄存器可能需要特定的访问权限,例如特权模式。如果你的代码没有足够的权限,可能会导致无法成功赋值。 4. 时序问题:如果CPU_CCR_C的值在不断变化,可能存在时序问题。在赋值操作之前,确保CPU_CCR_C的值已经稳定。可以使用一些延时操作来确保时序的稳定性。 5. 硬件问题:如果以上方法都无法解决问题,可能是硬件本身的问题。检查硬件连接和配置,确保硬件没有问题。 6. 仿真器问题:如果你在仿真环境中遇到这个问题,可能是仿真器的问题。尝试使用不同的仿真器或者在实际硬件上测试代码,以排除仿真器的问题。 综上所述,要解决这个问题,你需要检查寄存器定义、编译器优化、访问权限、时序问题、硬件问题和仿真器问题。希望这些建议能帮助你解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
740浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
577浏览 3评论
600浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
563浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 13:47 , Processed in 0.705317 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号