本帖最后由 YangTwo 于 2024-7-21 08:15 编辑
1.什么是UART?
UART 是一种异步串行通信协议,可以实现数据的双向传输。异步指通信双方不需要一个共同的时钟信号,而是通过预先约定好的波特率进行数据的传输,因此在电路实现上相对简单,成本低廉。
2.UART的工作原理
UART 的发送端会将要发送的数据转换为一系列的数字信号(0 或 1),每个信号的持续时间称为位周期,而每个字节之间则由一段停止位和可能存在的校验位隔开。
在接收端,UART 会通过检测波特率以及位周期的变化来判断数据的传输情况,并将数字信号重新转换为原始数据。如果发现出现了误码,UART 可能会采用奇偶校验或循环冗余校验等方式来检测并纠正错误。
3. UART在CyW20829开发板上的应用
开发板上的UART接口信号连接在PSoC™5LP器件和CYW20829之间,如下图所示。
相关引脚定义:
#define CYBSP_BT_UART_TX (P3_3)
#define CYBSP_DEBUG_UART_TX CYBSP_BT_UART_TX
#define CYBSP_BT_UART_RX (P3_2)
#define CYBSP_DEBUG_UART_RX CYBSP_BT_UART_RX
在主函数中调用如下接口:
/* Initialize retarget-io to use the debug UART port */
result = cy_retarget_io_init_fc(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX,
CYBSP_DEBUG_UART_CTS,CYBSP_DEBUG_UART_RTS,CY_RETARGET_IO_BAUDRATE);
经过重定向后,正常使用printf打印字符串:
printf("Hello 21ic, Hello Infineon CYW20829!\r\n");
实物演示:
|