今天来分享一个关于开发国产芯片(复旦微FM33LG048)串口3时候遇到一个无法发送和接收原因,通过使用官网的图形配置工具来成功解决问题的案例。
具体情况是这样的,该芯片官网有提供相应的keil参考例子,因为我要用到这个芯片上面的五个串口,所以拿了官方的UART0例子当做参考,然后看了芯片手册还有时钟树以及开发注意事项,上面就说串口0/1有双时钟,其他三个串口3/4/5(没有串口2)就跟着时钟时钟走,因此其他几个串口外设驱动我也就参考串口0的参考写。但是莫名其妙的是单独串口3不能正常收发,其他几个参考下来都可以的。
于是又仔细去看了一下芯片手册关于串口那部分的说明,也没有发现串口3不一样的地方,唯独就是串口3好像只有两个引脚可以使用,没有映射到其他引脚,像另外四个串口的收发引脚都是两个。难道会跟着有关?后来去网上查原因,发现复旦微也有跟STM32CubeMX一样的图形化配置工具,就是如下图所示这样,正常串口3有问题,提供的keil例子里面也没有串口3的例子,那就用官方工具生成试试看。
关于这个东西,它也有自己的名字,复旦微叫它魔方,也挺有意思的这个名字取得。然后就是一顿操作,点击配置了一下串口3的设置参数等,再把配置的工程下载下来,打开看一下。结果一下子就知道了原因,官方对串口3的这一步配置与其他几个串口都不一样,就是在这个地方。
GPIO_InitStruct