首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32串口调试笔记

STM32串口调试笔记

今天用ST官方库重新尝试调试STM32的串口,遇到问题虽不多,但着实琢磨了我整个下午......刚开始的程序是只有管脚配置和串口模式配置,其他什么都没写.
但是一运行就出问题了.
首先程序赖在"0x08001990 BEAB     BKPT    0xAB"这个语句里死活跳不出去.

把printf函数注释掉又能正常运行~~~
好吧,上网一搜,原来要在魔术棒->Traget选项里将UseMircoLIB选项勾选,也就是说printf函数要使用微库.
好吧,勾选了,再编译运行,,,,还是不成功啊~~~
以前自己用的是别人(正点原子)的代码,只要配置好串口,直接使用printf就OK了,现在使用库函数怎么就不行了.
然后就怀疑这里怀疑那里,忙活了一下午...
好吧,搜来官方代码,豁然开朗,,,
原来需要用一个fputc函数将printf函数重新定向到串口中,所有问题统统解决...
具体函数代码是摘自官方库的,现贴出来,,,对应的是串口1

int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (uint8_t) ch);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) ==RESET)
  {
  }
return ch;
}
继承事业,薪火相传
返回列表