找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3937|回复: 0
收起左侧

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

[复制链接]
ID:82083 发表于 2015-6-6 21:36 | 显示全部楼层 |阅读模式
菜鸟一枚,遇到问题上网找不到答案,只好自己尝试,请大神指教。
问题描述:
    配置USART的波特率为38400,结果无法成功接收数据,检查后发现波特率配置寄存器BRR错误,
005LTGcEgy.png
编译器优化导致USART波特率配置错误
,尝试在USART_Init(USART3, &USART_InitStructure); 增加断点,结果发现寄存器竟然不同,
005LTGcEgy6SIFGQ5SI34&690.png
编译器优化导致USART波特率配置错误
反复试了多次,结果一样:在又断点的情况下,波特率寄存器正确;在没有断点的情况下波特率寄存器配置错误;
原因分析:
    有无断点时运行结果不同,可能是没加断点时这些语句没有执行,加了断点才执行。联想到编译器优化的问题,于是把优化等级设置为0;
005LTGcEgy6SIFHT3Z8b2&690.png
编译器优化导致USART波特率配置错误

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表