1 介绍
开发板引出了UART串口,根据原理图搭建uart开发环境,通过USB转TTL串口和串口调试助手进行uart接口的数据收发测试。
2 电路连接
原理图:
![image.png](//file1.elecfans.com/web2/M00/02/3B/wKgZoma6pjGAYV7BAAAkfXrbfnI969.png)
![image.png](//file1.elecfans.com/web2/M00/02/3B/wKgZoma6pkCAKGYuAAAz0Zu5mUc973.png)
将MIKROE_UART_RX和MIKROE_UART_TX
分别连接USB转串口的TX和RX管脚,再把GND连接上。
3 工程配置
在PINTOOL中配置对应的管脚,这里和原理图对应PD4和PD5
![image.png](//file1.elecfans.com/web2/M00/02/3B/wKgZoma6pxWAMkm7AAISda0ypHY365.png)
![image.png](//file1.elecfans.com/web2/M00/02/3B/wKgZoma6p1GAf7CEAABxPYxVhyQ122.png)
![image.png](//file1.elecfans.com/web2/M00/02/3B/wKgZoma6p2CAYsT4AABwSGgAxD4901.png)
名称可以自己取
加载VCOM示例
![image.png](//file1.elecfans.com/web2/M00/02/3B/wKgZoma6p86ABMZVAADQgQyOdnA267.png)
![image.png](//file1.elecfans.com/web2/M00/03/27/wKgaoma6qACADcEJAAGLkcTWo4Q984.png)
工程中可以看到已经加载了对应的UART示例
![image.png](//file1.elecfans.com/web2/M00/03/27/wKgaoma6qJSAS_FLAABqu0voSEM530.png)
![image.png](//file1.elecfans.com/web2/M00/02/3B/wKgZoma6qFyADnHgAACOpXOY9Co524.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](//file1.elecfans.com/web2/M00/02/3B/wKgZoma6qhiAM1YVAAAqhgKTIlk190.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](//file1.elecfans.com/web2/M00/03/34/wKgaoma61ZKAMDslAAAjNPXAnSE099.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](//file1.elecfans.com/web2/M00/02/48/wKgZoma61i-AMXMNAABDDm6Ye-4718.png)
发现收发数据都正常了。