[Wi-Fi/蓝牙/Zigbee…] 【WFI32E04分享】③四箭齐发,一次性调通4个串口

[复制链接]
1126|0
cc1989summer 发表于 2025-11-10 12:43 | 显示全部楼层 |阅读模式
本帖最后由 cc1989summer 于 2025-11-10 12:45 编辑




【WFI32E04分享】②依照国际惯例先来点个灯 - Microchip
https://bbs.21ic.com/icview-3494461-1-1.html


书接上回,点完灯咱们就研究串口吧,




查看芯片手册,我们发现WFI32E02UC模块总共有3个串口:其中有2个可重新映射的外设( Remappable Peripherals),1个固定外设
可重新映射的外设,顾名思义,可以重新改变引脚,也就是串口可以定义在任意支持的引脚上,后面会展示。







查看模块手册,总计可以看到4个UART串口,如图

UART1:RA8 RA9(J401)  +   Type-C虚拟串口(通过USB HUB——USB转串口与UART1相连)

UART2(可重新映射的外设):RK7  RB9 (mikroBUS Sockets-1 J400)

UART3(可重新映射的外设):RK9 RA12(mikroBUS Sockets-2 J404)


首先新建工程(参考上贴),将Peripherals中的UART1、UART2、UART3都添加进来。最右侧配置默认就好(115200)



然后在pin Table页面,分别设置UART1、UART2、UART3的引脚(实际上UART1不做配置也可正常使用,因为他是固定外设,引脚不可改变,只能是RA8 RA9)

UART2、UART3则可以有很多选择(绿色色块是选好的)。



需要补充以下:
mikroBUS Sockets-1 J400的RK7  RB9 是UART与CAN共用的引脚,确保J403针脚默认
mikroBUS Sockets-2 J404的RK9 RA12 是UART与CAN共用的引脚,确保J411针脚默认



生成代码后,在main函数中写入UART1、UART2、UART3代码



  1. #include <stddef.h>                     // Defines NULL
  2. #include <stdbool.h>                    // Defines true
  3. #include <stdlib.h>                     // Defines EXIT_FAILURE
  4. #include "definitions.h"                // SYS function prototypes


  5. char msg1[] = "Hello World by UART1!\n";
  6. char msg2[] = "Hello World by UART2!\n";
  7. char msg3[] = "Hello World by UART3!\n";

  8. // *****************************************************************************
  9. // *****************************************************************************
  10. // Section: Main Entry Point
  11. // *****************************************************************************
  12. // *****************************************************************************

  13. int main ( void )
  14. {
  15.     /* Initialize all modules */
  16.     SYS_Initialize ( NULL );

  17.     while ( true )
  18.     {
  19.         UART1_Write(msg1, sizeof(msg1));
  20.         for(int i=0;i<50000000;i++);
  21.         
  22.         UART2_Write(msg2, sizeof(msg2));
  23.         for(int i=0;i<50000000;i++);
  24.         
  25.         UART3_Write(msg3, sizeof(msg3));
  26.         for(int i=0;i<50000000;i++);
  27.     }

  28.     /* Execution should not come here during normal operation */

  29.     return ( EXIT_FAILURE );
  30. }



编译运行即可查看4个串口均正常输出:









1. PC端虚拟串口(TYPE-C  UART1:对应PC COM16)



收到:Hello World by UART1!





2. J401接口 U1TX接口(UART1:对应PC COM19)

收到:Hello World by UART1!



3. mikroBUS Sockets-1 J400 TX接口(UART2:对应PC COM19)

收到:Hello World by UART2!



4. mikroBUS Sockets-5 J404 TX接口(UART3:对应PC COM19)

收到:Hello World by UART3!



2/3/4 的测试方法如下,将USB转串口的RX引脚,分别用杜邦线接J401接口 U1TX接口、mikroBUS Sockets-1 J400 TX接口、mikroBUS Sockets-5 J404 TX接口。








本次分享就到这里。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

39

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0