分享通过复旦微魔方来找到FM33LG048串口3无法发送和接收原因的例子

在开发复旦微FM33LG048芯片时,遇到串口3无法正常发送和接收的问题。通过官方图形配置工具——魔方,发现串口3需要使能数字功能重定向才能工作,而其他串口则不需要此步骤。设置GPIO_InitStruct.remapPin为FL_ENABLE后,串口3成功实现了收发功能。
摘要由CSDN通过智能技术生成

今天来分享一个关于开发国产芯片(复旦微FM33LG048)串口3时候遇到一个无法发送和接收原因,通过使用官网的图形配置工具来成功解决问题的案例。

具体情况是这样的,该芯片官网有提供相应的keil参考例子,因为我要用到这个芯片上面的五个串口,所以拿了官方的UART0例子当做参考,然后看了芯片手册还有时钟树以及开发注意事项,上面就说串口0/1有双时钟,其他三个串口3/4/5(没有串口2)就跟着时钟时钟走,因此其他几个串口外设驱动我也就参考串口0的参考写。但是莫名其妙的是单独串口3不能正常收发,其他几个参考下来都可以的。

于是又仔细去看了一下芯片手册关于串口那部分的说明,也没有发现串口3不一样的地方,唯独就是串口3好像只有两个引脚可以使用,没有映射到其他引脚,像另外四个串口的收发引脚都是两个。难道会跟着有关?后来去网上查原因,发现复旦微也有跟STM32CubeMX一样的图形化配置工具,就是如下图所示这样,正常串口3有问题,提供的keil例子里面也没有串口3的例子,那就用官方工具生成试试看。
在这里插入图片描述
关于这个东西,它也有自己的名字,复旦微叫它魔方,也挺有意思的这个名字取得。然后就是一顿操作,点击配置了一下串口3的设置参数等,再把配置的工程下载下来,打开看一下。结果一下子就知道了原因,官方对串口3的这一步配置与其他几个串口都不一样,就是在这个地方。

GPIO_InitStruct.remapPin      = FL_ENABLE;    //使能数字功能重定向

试了一下,把串口3两个引脚的remapPin都设置为使能,发现果然成功实现收发了。因为我看串口0是没有使能数字功能重定向,也就一并模范了,没想到串口3因为自身原因造成无法收发,必须配置为数字功能重定向使能才行。具体串口3的配置如下:

    GPIO_InitStruct.pin           = FL_GPIO_PIN_2;
    GPIO_InitStruct.mode          = FL_GPIO_MODE_DIGITAL;
    GPIO_InitStruct.outputType    = FL_GPIO_OUTPUT_PUSHPULL;
    GPIO_InitStruct.pull          = FL_ENABLE;     //上拉使能
    GPIO_InitStruct.remapPin      = FL_ENABLE;    //使能数字功能重定向
    GPIO_InitStruct.analogSwitch  = FL_DISABLE;    //不使能模拟开关使能
    (void)FL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_InitStruct.pin           = FL_GPIO_PIN_3;
    GPIO_InitStruct.mode          = FL_GPIO_MODE_DIGITAL;
    GPIO_InitStruct.outputType    = FL_GPIO_OUTPUT_PUSHPULL;
    GPIO_InitStruct.pull          = FL_DISABLE;    //发送不上拉
    GPIO_InitStruct.remapPin      = FL_ENABLE;     //串口3需要将其使能才能正常工作
    GPIO_InitStruct.analogSwitch  = FL_DISABLE;
    (void)FL_GPIO_Init(GPIOB, &GPIO_InitStruct);

总结这次解决的方法就是需要将remapPin配合为FL_ENABLE,也就是使能引脚的数字重定向功能即可~,如果也有其他小伙伴在开发这款芯片时候也遇到这种情况,可以把我这个例子当做参考哈。同时也感觉现在国产芯片做的越来越不错了,一些配套工具也越来越完善了。

好了,今天的例子就分享到这里了~

本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞和收藏,谢谢~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OMGMac

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值