1.硬件连接
uart5
rx:11.0
tx:11.1
2.rt-thread settings
在硬件中选择uart5,保存退出
修改uart_config.h
#if defined(BSP_USING_UART5)
#ifndef UART5_CONFIG
#define UART5_CONFIG \
{ \
.name = "uart5", \
.tx_pin = P11_1, \
.rx_pin = P11_0, \
.usart_x = SCB5, \
.intrSrc = scb_5_interrupt_IRQn, \
.userIsr = uart_isr_callback(uart5), \
.UART_SCB_IRQ_cfg = &UART5_SCB_IRQ_cfg, \
}
void uart5_isr_callback(void);
#endif /* UART5_CONFIG */
#endif /* BSP_USING_UART5 */
3.相关接口
rt_device_find()
rt_device_open(rt_device_t dev, rt_uint16_t oflag)oflag 定义在rtdef.h中
#define RT_DEVICE_FLAG_INT_RX 0x100 //中断模式
#define RT_DEVICE_FLAG_DMA_RX 0x200 //RxDMA
#define RT_DEVICE_FLAG_INT_TX 0x400 /**< INT mode on Tx */
#define RT_DEVICE_FLAG_DMA_TXrt_device_read() 读取数据
rt_device_write() 写入数据
rt_device_control() 控制设备
rt_device_set_rx_indicate() 设置接收回调函数
rt_device_set_tx_indicate() 设置发送完回调函数
rt_device_close()
4.发送数据
void uart5_init(void){
serial = rt_device_find(UART_NAME);
rt_device_open(serial,RT_DEVICE_FLAG_INT_RX);
rt_device_write(serial,0,str,(sizeof(str)-1));//会乱码
}