单片机/MCUwilliam hill官网
直播中

jf_85961855

2年用户 31经验值
擅长:可编程逻辑 模拟技术 处理器/DSP 控制/MCU
私信 关注

【xG24 Matter开发套件试用体验】8-UART收发数据

1 介绍

开发板引出了UART串口,根据原理图搭建uart开发环境,通过USB转TTL串口和串口调试助手进行uart接口的数据收发测试。

2 威廉希尔官方网站 连接

原理图:
image.png

image.png

将MIKROE_UART_RX和MIKROE_UART_TX

分别连接USB转串口的TX和RX管脚,再把GND连接上。

3 工程配置

在PINTOOL中配置对应的管脚,这里和原理图对应PD4和PD5
image.png

image.png

image.png

名称可以自己取

加载VCOM示例
image.png

image.png

工程中可以看到已经加载了对应的UART示例
image.png

image.png

4 编写串口发送程序

添加uart对应的头文件
#include "sl_uartdrv_instances.h"

uint8_t uart_txbuff[10] ={0,1,2,3,4,5,6,7,0x0D,0x0A};

UARTDRV_Transmit(sl_uartdrv_usart_vcom0_handle,uart_txbuff,sizeof(uart_txbuff),NULL);
sl_udelay_wait(1000000);
每秒钟发送一包固定数据
通过串口调试助手接收对应的数据
121.png

修改程序:接收数据然后把接收的数据发送出来
UARTDRV_Receive(sl_uartdrv_usart_vcom0_handle,uart_rxbuff,sizeof(uart_txbuff), NULL);
if(uart_rxbuff[9]==0x0A)
{
UARTDRV_Transmit(sl_uartdrv_usart_vcom0_handle,uart_rxbuff,sizeof(uart_txbuff),NULL);

memset(uart_rxbuff,0x00,sizeof(uart_rxbuff));
}

122.png
发现程序逻辑没有问题,可是数据不完整,增加一个小延时程序
UARTDRV_Receive(sl_uartdrv_usart_vcom0_handle,uart_rxbuff,sizeof(uart_txbuff), NULL);
if(uart_rxbuff[9]==0x0A)
{
UARTDRV_Transmit(sl_uartdrv_usart_vcom0_handle,uart_rxbuff,sizeof(uart_txbuff),NULL);
sl_udelay_wait(1000);
memset(uart_rxbuff,0x00,sizeof(uart_rxbuff));
}

123.png

发现收发数据都正常了。

更多回帖

发帖
×
20
完善资料,
赚取积分