SWM181 串口功能使用介绍
- 📌SDK固件包:
https://www.synwit.cn/kuhanshu_amp_licheng/
- ✨
注意新手谨慎选择作为入门单片机学习。
- 🌼开发板如下图:
- 📋SWM181描述上写了有4个串口,在数据手册上,将引脚复用功能只是简称
funtion
功能块,(FUNCTION :可配置为 UART/I2C/PWM/TIMER/CAN/HALL 功能),在所给出的库函数里面只可以找到被定义的3个串口的相关宏。在存储器映射地址中又可以找到4个串口。
-
🔖在所公开的相关案例中,串口的案例有几个,都只是提供了一个串口的例子或软串口的使用,所给的SPI模拟串口案例还是一个有问题的工程,直接编译报错,缺少一个结构体成员变量。需要往对应的结构体当中补充一个成员变量。不够目前不知道这个SPI模拟UART有何用。真怀疑官方没有用心在做这些基本的事情,连基本的编译测试功能都没有做。
-
📖串口案例:
✨SWM181串口特性
- 支持标准的 UART 协议
- 支持全双工模式
- 支持波特率可配置
- 支持 8 位/9 位数据格式选择
- 可配置的奇偶校验位
- 支持 1 位/2 位停止位选择
- 支持波特率自动调整
- 深度为 9 字节的发送和接收 FIFO
- 支持 break 操作自动检测
- 支持接收超时中断
- 支持 LIN 模式
- 支持发送/接收数据 LSB/MSB 选择
- 支持发送/接收数据电平反向
📑功能描述
- UART 模块支持波特率配置,最高速度可达到模块时钟 16 分频。具备深度为 8 的
FIFO
,同时提供了多种中断供选择。
- 🌿接收FIFO
每接收到一个数据,RX FIFO 中数据个数加一,当 RX FIFO 中数据个数大于
RXThreshold 时,触发接收中断。有效的利用串口硬件FIFO,可以减少中断次数
📖串口初始化配置函数
- 🌿串口引脚:PA0(RXT)、PA1(TXD)
void SerialInit(void)
{
UART_InitStructure UART_initStruct;
PORT_Init(PORTA, PIN0, FUNMUX_UART0_RXD, 1); //GPIOA.0配置为UART0输入引脚
PORT_Init(PORTA, PIN1, FUNMUX_UART0_TXD, 0); //GPIOA.1配置为UART0输出引脚
UART_initStruct.Baudrate = 57600;//波特率
UART_initStruct.DataBits = UART_DATA_8BIT;
UART_initStruct.Parity = UART_PARITY_NONE;
UART_initStruct.StopBits = UART_STOP_1BIT;
UART_initStruct.RXThreshold = 3;//RX FIFO中数据个数
UART_initStruct.RXThresholdIEn = 1;//当RX FIFO中数据个数 > RXThreshold时触发中断
UART_initStruct.TXThreshold = 3;//TX FIFO中数据个数
UART_initStruct.TXThresholdIEn = 1;//TX FIFO中数据个数 <= TXThreshold时触发中断
UART_initStruct.TimeoutTime = 10;//超时时长 = TimeoutTime/(Baudrate/10) 秒
UART_initStruct.TimeoutIEn = 0;//超时中断,RX FIFO非空,且超过 TimeoutTime/(Baudrate/10) 秒没有在RX线上接收到数据时触发中断
UART_Init(UART0, &UART_initStruct);
UART_Open(UART0);//UART串口打开
}