找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3844|回復(fù): 0
收起左側(cè)

編譯器優(yōu)化導(dǎo)致USART波特率配置錯誤

[復(fù)制鏈接]
ID:82083 發(fā)表于 2015-6-6 21:36 | 顯示全部樓層 |閱讀模式
菜鳥一枚,遇到問題上網(wǎng)找不到答案,只好自己嘗試,請大神指教。
問題描述:
    配置USART的波特率為38400,結(jié)果無法成功接收數(shù)據(jù),檢查后發(fā)現(xiàn)波特率配置寄存器BRR錯誤,
005LTGcEgy.png
編譯器優(yōu)化導(dǎo)致USART波特率配置錯誤
,嘗試在USART_Init(USART3, &USART_InitStructure); 增加斷點,結(jié)果發(fā)現(xiàn)寄存器竟然不同,
005LTGcEgy6SIFGQ5SI34&690.png
編譯器優(yōu)化導(dǎo)致USART波特率配置錯誤
反復(fù)試了多次,結(jié)果一樣:在又?jǐn)帱c的情況下,波特率寄存器正確;在沒有斷點的情況下波特率寄存器配置錯誤;
原因分析:
    有無斷點時運行結(jié)果不同,可能是沒加斷點時這些語句沒有執(zhí)行,加了斷點才執(zhí)行。聯(lián)想到編譯器優(yōu)化的問題,于是把優(yōu)化等級設(shè)置為0;
005LTGcEgy6SIFHT3Z8b2&690.png
編譯器優(yōu)化導(dǎo)致USART波特率配置錯誤

結(jié)果運行正確
總結(jié):
        因為編譯器優(yōu)化的原因?qū)е履承┱Z句沒有執(zhí)行,以后發(fā)現(xiàn)有無斷點結(jié)果不同的情況可以考慮編譯器優(yōu)化的問題。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表