找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3760|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
菜鸟一枚,遇到问题上网找不到答案,只好自己尝试,请大神指教。
问题描述:
    配置USART的波特率为38400,结果无法成功接收数据,检查后发现波特率配置寄存器BRR错误,

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

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

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

结果运行正确
总结:
        因为编译器优化的原因导致某些语句没有执行,以后发现有无断点结果不同的情况可以考虑编译器优化的问题。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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