OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2658|回复: 0

分享:函数接口调用了函数,结果串口就不能正常使用了

[复制链接]

10

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
338
金钱
338
注册时间
2015-1-24
在线时间
55 小时
发表于 2016-9-11 19:39:21 | 显示全部楼层 |阅读模式
最近在使用103C8T6发现在
主函数里面调用 ESP8266_Interface_Init()
函数原型如下:
void ESP8266_Interface_Init(u32 baud)
{             
    My_Uart_Init(baud);                //初始化硬件接口
}

QQ截图20160911192902.jpg
串口竟然不能正常使用,但是在main函数里面调用 My_Uart_Init();完全可以正常使用。
这个很奇怪,默认正常的代码优化是 -O1  


所以只能怀疑到代码被编译器优化掉了,因此修改了代码优化为 dafault 后解决


最后又尝试了一下,把串口初始化函数里面的
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能GPIOA,G时钟
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//使能USART2时钟

换了一下位置,采用默认的 -O1优化,却不会出现上面那个问题了。

修改前:
2.jpg

修改后:

3.jpg


仅此分享,如有想法,请多多指教交流,目前是用MDK5.20


学无止境
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 12:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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