标题: 编译器优化导致USART波特率配置错误 [打印本页]

作者: qinqin    时间: 2015-6-6 21:36
标题: 编译器优化导致USART波特率配置错误
菜鸟一枚,遇到问题上网找不到答案,只好自己尝试,请大神指教。
问题描述:
    配置USART的波特率为38400,结果无法成功接收数据,检查后发现波特率配置寄存器BRR错误,

编译器优化导致USART波特率配置错误
,尝试在USART_Init(USART3, &USART_InitStructure); 增加断点,结果发现寄存器竟然不同,

编译器优化导致USART波特率配置错误
反复试了多次,结果一样:在又断点的情况下,波特率寄存器正确;在没有断点的情况下波特率寄存器配置错误;
原因分析:
    有无断点时运行结果不同,可能是没加断点时这些语句没有执行,加了断点才执行。联想到编译器优化的问题,于是把优化等级设置为0;

编译器优化导致USART波特率配置错误

结果运行正确
总结:
        因为编译器优化的原因导致某些语句没有执行,以后发现有无断点结果不同的情况可以考虑编译器优化的问题。





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1