0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RTT_Draco的外置uart接口(TXD,RXD)怎么配置和使用呢?

工程师邓生 来源:未知 作者:刘芹 2024-01-16 17:11 次阅读

RTT_Draco的外置uart接口(TXD,RXD)怎么配置和使用呢?

RT-Thread的RTT_Draco是一款高性能的MCU芯片,它提供了外置UART接口(TXD,RXD)用于与外部设备进行通信。下面详细介绍了RTT_Draco外置UART接口的配置和使用方法。

1. 配置引脚复用:

首先,在使用RTT_Draco的外置UART接口之前,需要确保引脚复用已经正确配置。RTT_Draco的引脚复用功能由引脚复用控制器Pin Multiplexer)负责。可以使用RT-Thread的pinmux命令进行引脚复用配置,具体操作如下:

```shell
# 配置TXD引脚
>> pinmux set PA0 1
# 配置RXD引脚
>> pinmux set PA1 1
# 配置UART功能
>> pinmux set-func PA0 uart0_txd
>> pinmux set-func PA1 uart0_rxd
```

2. 初始化UART设备:

接下来,需要初始化UART设备以便进行后续的通信操作。RT-Thread提供了通用串口驱动(UART),可以用于各种UART设备的初始化和操作。可以使用RT-Thread的UART设备驱动来初始化UART设备,示例代码如下:

```c
#include
#include

static struct rt_serial_device uart;

int uart_init(void)
{
rt_err_t result;
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;

/* 初始化串口设备对象 */
rt_serial_init(&uart, "uart1",
&uart_ops, NULL);

/* 配置串口设备参数 */
config.baud_rate = BAUD_RATE_115200;
config.data_bits = DATA_BITS_8;
config.stop_bits = STOP_BITS_1;
config.parity = PARITY_NONE;

/* 打开并配置串口设备 */
result = rt_serial_configure(&uart, &config);
if (result != RT_EOK)
{
/* 初始化失败处理 */
}

return RT_EOK;
}
```

3. 发送和接收数据:

UART设备初始化完成后,可以通过rt_device_write和rt_device_read函数向UART设备发送和接收数据。

```c
#define UART_DEVICE_NAME "uart1"

void uart_send(const void *data, rt_size_t count)
{
struct rt_device *device = rt_device_find(UART_DEVICE_NAME);
if (device == RT_NULL)
{
/* 设备未找到处理 */
return;
}

rt_device_write(device, 0, data, count);
}

rt_err_t uart_receive(void *buffer, rt_size_t size)
{
struct rt_device *device = rt_device_find(UART_DEVICE_NAME);
if (device == RT_NULL)
{
/* 设备未找到处理 */
return -RT_ENOSYS;
}

return rt_device_read(device, 0, buffer, size);
}
```

4. 绑定设备:

最后,需要将UART设备绑定到相应的RT-Thread设备节点上,以便其他模块可以通过操作设备节点来使用UART设备。可以使用RT-Thread的device命令来进行绑定操作,示例代码如下:

```shell
>> device bind uart1 uart
```

以上就是RTT_Draco外置UART接口(TXD,RXD)的配置和使用方法。通过上述步骤,您可以在RTT_Draco上成功使用外置UART接口与外部设备进行通信。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTT
    RTT
    +关注

    关注

    0

    文章

    63

    浏览量

    16884
  • UART接口
    +关注

    关注

    0

    文章

    123

    浏览量

    15068
  • MCU芯片
    +关注

    关注

    3

    文章

    222

    浏览量

    11147
收藏 人收藏

    评论

    相关推荐

    MAX78000进串口通信的验证和调试

    2的接收引脚为P1.0 (RXD2)。引脚连接方式:将外部设备的串口接收引脚连接到MAX78000开发板的P1.4 (TXD2)引脚。将外部设备的串口发送引脚连接到MAX78000开发板的P1.5 (RXD2)引脚。通过该工程,
    发表于 02-18 09:43 0次下载

    小安派-Cam-D200使用过程中的异常问题

    烧录的接口该怎么连,固件烧录的教程中RXDTXD接口没找到,只有RX和TX,两者是同一个吗?
    的头像 发表于 01-23 11:13 256次阅读
    小安派-Cam-D200使用过程中的异常问题

    GND,VIN,TXD,RXD是什么意思?

    GND指地线,是用于连接电路中各个地点的参考点,通常用作零电位的引用点。 VIN指输入电压,是指被输入到电路或设备中的电压信号。 TXD是发送数据线,是指从发送器发送数据到接收器的数据传输线路。 RXD是接收数据线,是指接收器接收数据的数据传输线路。 审核编辑 黄宇
    的头像 发表于 01-03 16:11 2595次阅读

    RTT RA2L1 MQTT网络温湿度采集

    添加uart0,波特率为默认的115200。串口回调函数为默认的user_uart_callbakc,TXDRXD 为P101、P100,刚好适配PMOD2(J7),来接DA1620
    的头像 发表于 10-12 11:10 258次阅读
    <b class='flag-5'>RTT</b> RA2L1 MQTT网络温湿度采集

    关于M0518串口电平问题求助

    ;gt;ALT_MFP4 = SYS_ALT_MFP4_PA3_UART3_RXD| SYS_ALT_MFP4_PA2_UART3_TXD | SYS_ALT_MFP4_PA1_UART5_RXD
    发表于 08-23 06:59

    关于MINI58 UART在SYS-&gt;P0_MFP中进行配置的问题

    MINI58技术手册上说UART在SYS->P0_MFP中进行配置 但实际我的配置如下: SYS->P5_MFP = SYS_MFP_P51_UART0_RXD
    发表于 08-23 06:41

    nuc131的uart 5为什么有两个TXD和两个RXD

    nuc131SXXAE,按照官方的说明书,uart 5的 TXD 在Pin 39 和 Pin44(LQFP 64封装),那我该如何使用这个功能?
    发表于 08-22 08:24

    NUC230的GPIO复用成为UART时,必须去设置不同的IO复用在UART上是为什么?

    for UART0 RXD and TXD */ SYS->GPB_MFP= ~(SYS_GPB_MFP_PB0_Msk | SYS_GPB_MFP_PB1_Msk); SYS->
    发表于 08-21 08:19

    HAL库UART在cubemx中的配置

    串口1咱们已经用作rtt的print使用了,所以使用另外一组串口来进行串口的教程,这里一定要注意下,alios的这个板子原理图是有点问题的,标注的是串口3PA2和PA3,实际上小飞哥调了好久,最后万用表量引脚才发现是原理图标注错误,实际上是UART4,PA0和PA1
    的头像 发表于 07-05 09:47 499次阅读
    HAL库<b class='flag-5'>UART</b>在cubemx中的<b class='flag-5'>配置</b>

    关于NUC131LC2AE串口2/3/4/5的使用配置问题求解

    |= SYS_GPB_MFP_PB0_UART0_RXD | SYS_GPB_MFP_PB1_UART0_TXD; //复位串口 SYS_ResetModule(UART
    发表于 06-28 08:03

    NUC230的GPIO复用成为UART时,必须去设置不同的IO复用在UART上吗?

    for UART0 RXD and TXD */ SYS->GPB_MFP &= ~(SYS_GPB_MFP_PB0_Msk | SYS_GPB_MFP_PB1_Msk
    发表于 06-28 06:09

    请问NM1200 UART1可以使用吗?

    NM1200 UART1可以使用吗?官方BSP库文件里面没有P14-RXD和P15-TXD的功能配置 只有对Uart1的一些寄存器
    发表于 06-19 08:05

    NUC123SD4A UART1发送资料错误是什么原因造成的?

    GPB multi-function pins for UART1 RXD(PB.4) and TXD(PB.5) */ SYS->GPB_MFP &
    发表于 06-13 07:37

    NUC230的GPIO复用成为UART时,必须去设置不同的IO复用在UART上吗?

    for UART0 RXD and TXD */ SYS->GPB_MFP &= ~(SYS_GPB_MFP_PB0_Msk | SYS_GPB_MFP_PB1_Msk
    发表于 06-13 06:55

    ESP8266:TXD0信号影响RXD0要如何避免这种情况?

    我在我的 Witty Cloud 板子上观察到通过 TXD0 传输的数据会影响 RXD0 的电平。 在附上的截图中,黄色是传入数据@RXD0,蓝色是@TXD0。传输速度为 2400 b
    发表于 05-10 08:00