中级会员
 
- 积分
- 338
- 金钱
- 338
- 注册时间
- 2015-1-24
- 在线时间
- 55 小时
|
最近在使用103C8T6发现在
主函数里面调用 ESP8266_Interface_Init()
函数原型如下:
void ESP8266_Interface_Init(u32 baud)
{
My_Uart_Init(baud); //初始化硬件接口
}
串口竟然不能正常使用,但是在main函数里面调用 My_Uart_Init();完全可以正常使用。
这个很奇怪,默认正常的代码优化是 -O1
所以只能怀疑到代码被编译器优化掉了,因此修改了代码优化为 dafault 后解决
最后又尝试了一下,把串口初始化函数里面的
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能GPIOA,G时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//使能USART2时钟
换了一下位置,采用默认的 -O1优化,却不会出现上面那个问题了。
修改前:
修改后:
仅此分享,如有想法,请多多指教交流,目前是用MDK5.20
|
|