可以用STM32CUBEMX生成一个串口的程序来比较一下,先把串口调通。再来调Printf,先确定问题的位置,一个一个慢慢解决。
thereborn000 发表于 2019-4-18 10:10
也就是说我不能简单地修改PA9,PA10为PB6和PB7,我还得进行重映射的一些配置是吗?
...
不进行重映射,机器会第一时间认定为USART1口的PA9,PA10。
本帖最后由 toofree 于 2019-4-18 18:46 编辑
thereborn000 发表于 2019-4-18 10:43
哦对了 我的是stm32f107 还要重映射吗?
板凳楼层回复,重映射代码都给你写了,理解不了?
多动脑,抓住一切细节。为以防万一PORTB的时钟也开一下。
刚开始学没关系,但你得跑一下F103官方的样例程序呀,103和107对串口1操作完全一致。
AFIO时钟都要打开,设计电路时首选缺省管脚(它本身就是REMAP0组),再考虑其它重定向组,但也是固定的映射,不是想remap哪个都行(至少串口这样),缺省管脚不用Remap函数,配置参数齐全,依据标志收发,波特率双方一致(串1是APB2,其它APB1),交叉接线(收对发,发对收,有限长度),一帧后清中断标志,做到这些应该能成功,另外定义一个全局buffer,方便主函数读写,发与收都是逐个字节进行,我能想到的就这些了
用cube直接配置好引脚、外设,生成了即可使用。
这样就降低遗漏的风险。(当然STM32老手可以忽略,寄存器666的随便怎么玩都不会崩)
一般没有苛刻要求的测试,都可以用它快速生成,节约周期。
后续的可以等功能实现后再优化。:)