|
菜鳥一枚,遇到問題上網(wǎng)找不到答案,只好自己嘗試,請大神指教。
問題描述:
配置USART的波特率為38400,結(jié)果無法成功接收數(shù)據(jù),檢查后發(fā)現(xiàn)波特率配置寄存器BRR錯誤,
005LTGcEgy.png (766 Bytes, 下載次數(shù): 134)
下載附件
2015-6-6 21:35 上傳
編譯器優(yōu)化導(dǎo)致USART波特率配置錯誤
,嘗試在USART_Init(USART3, &USART_InitStructure); 增加斷點(diǎn),結(jié)果發(fā)現(xiàn)寄存器竟然不同,
005LTGcEgy6SIFGQ5SI34&690.png (2 KB, 下載次數(shù): 115)
下載附件
2015-6-6 21:34 上傳
編譯器優(yōu)化導(dǎo)致USART波特率配置錯誤
反復(fù)試了多次,結(jié)果一樣:在又?jǐn)帱c(diǎn)的情況下,波特率寄存器正確;在沒有斷點(diǎn)的情況下波特率寄存器配置錯誤;
原因分析:
有無斷點(diǎn)時運(yùn)行結(jié)果不同,可能是沒加斷點(diǎn)時這些語句沒有執(zhí)行,加了斷點(diǎn)才執(zhí)行。聯(lián)想到編譯器優(yōu)化的問題,于是把優(yōu)化等級設(shè)置為0;
005LTGcEgy6SIFHT3Z8b2&690.png (22.7 KB, 下載次數(shù): 186)
下載附件
2015-6-6 21:34 上傳
編譯器優(yōu)化導(dǎo)致USART波特率配置錯誤
結(jié)果運(yùn)行正確
總結(jié):
因?yàn)榫幾g器優(yōu)化的原因?qū)е履承┱Z句沒有執(zhí)行,以后發(fā)現(xiàn)有無斷點(diǎn)結(jié)果不同的情況可以考慮編譯器優(yōu)化的問題。
|
|