Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
UART
NXP 微控制器
【NXP-MCXA153】RTT UART2驱动添加
发布于 2024-07-05 00:18:03 浏览:305
订阅该版
[tocm] ## UART层级结构 ![1.png](https://oss-club.rt-thread.org/uploads/20240705/7a848d83ab804460666c6bcf62d5f91e.png.webp) ### IO设备管理层 向应用层提供接口(rt_device_read/write等) ### 设备框架 源码是在serial_v2.c中,提供的功能如下: - 对应上层的IO设备管理层 - 对驱动层提供统一的UART操作接口如:configure, control, putc, getc, transmit等 - 驱动开发者需要实现的接口 - 设备注册管理接口 rt_hw_serial_register 和 中断处理接口rt_hw_serial_isr 驱动代码在drv_usartv2.c中 - UART驱动源码在 drv_usart.c中,实现 struct rt_uart_ops 的各种方法 - 调用rt_hw_serial_register 注册到系统 ## 创建流程 ### 扩展 struct rt_serial_device ```c struct mcx_uart { struct rt_serial_device *serial;//设备信息和操作 LPUART_Type *uart_base;//串口句柄 IRQn_Type irqn;//中断 clock_name_t clock_src;//时钟选择 clock_attach_id_t clock_attach_id; clock_ip_name_t clock_ip_name; clock_div_name_t clock_div_name; char *device_name; }; ``` ### 配置 ![2.png](https://oss-club.rt-thread.org/uploads/20240705/f71493c138ffcc8de1123d1685e506ff.png.webp) ```c struct serial_configure { rt_uint32_t baud_rate; //比特率 rt_uint32_t data_bits :4;//数据长度 rt_uint32_t stop_bits :2;//停止位 rt_uint32_t parity :2;//校验位 rt_uint32_t bit_order :1;//小段发送 rt_uint32_t invert :1;//模式选择 正常模式 归零编码方式 rt_uint32_t bufsz :16;//buf大小 rt_uint32_t flowcontrol :1;//硬件流控制 rt_uint32_t reserved :5;//保留的位 }; ``` ```c struct rt_uart_ops { rt_err_t (*configure)(struct rt_serial_device *serial, struct serial_configure *cfg); rt_err_t (*control)(struct rt_serial_device *serial, int cmd, void *arg); int (*putc)(struct rt_serial_device *serial, char c); int (*getc)(struct rt_serial_device *serial); rt_ssize_t (*dma_transmit)(struct rt_serial_device *serial, rt_uint8_t *buf, rt_size_t size, int direction); }; ``` #### 实现rt_uart_ops成员的接口 ##### configure :配置串口 配置串口基本属性:比特率等 ##### control :控制UART设备 ```c #define RT_DEVICE_CTRL_RESUME 0x01 /**< resume device */ #define RT_DEVICE_CTRL_SUSPEND 0x02 /**< suspend device */ #define RT_DEVICE_CTRL_CONFIG 0x03 /**< configure device */ #define RT_DEVICE_CTRL_CLOSE 0x04 /**< close device */ #define RT_DEVICE_CTRL_NOTIFY_SET 0x05 /**< set notify func */ #define RT_DEVICE_CTRL_SET_INT 0x06 /**< set interrupt */ #define RT_DEVICE_CTRL_CLR_INT 0x07 /**< clear interrupt */ #define RT_DEVICE_CTRL_GET_INT 0x08 /**< get interrupt status */ #define RT_DEVICE_CTRL_CONSOLE_OFLAG 0x09 /**< get console open flag */ #define RT_DEVICE_CTRL_MASK 0x1f /**< mask for contrl commands */ ``` ##### putc: 发送一个字符 LPUART_WriteByte(uart->uart_base, ch); ##### getc: 接收一个字符 ```c if (kLPUART_RxDataRegFullInterruptEnable & LPUART_GetStatusFlags(uart->uart_base)) { return LPUART_ReadByte(uart->uart_base); } ``` ## 代码实现 ### 引脚初始化 在pin_mux.c中初始化引脚 ### 接口实现 在上文已经介绍,不再描述 ### 注册和使用 ```c #define UART2_NAME "uart2" static rt_device_t uart2_serial; char str[] = "hello rttread!\n"; uart2_serial = rt_device_find(UART2_NAME); rt_device_open(uart2_serial, RT_DEVICE_FLAG_INT_RX); rt_device_write(uart2_serial, 0, str, (sizeof(str) - 1)); ``` ### 总结 v2版本需要配置,目前不清楚如何直接用代码配置,目前先了解如何添加uart驱动
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
LTBOHAPPY
加油努力
文章
6
回答
1
被采纳
0
关注TA
发私信
相关文章
1
试贴-消灭0主题
2
LPC M4的一些资料
3
LPC4088的临时分支
4
lpc1788 ad 不稳定
5
1788 LCD控制器缓冲区字节问题
6
一起来学习LPC4088吧
7
上传LPC4088的realtouch主工程
8
RealBoard 4088预定帖 [第一批板子不多,预定提前结束]
9
晒RealBoard LPC4088开箱照啦,速带小板凳前来围观
10
4088主程序需要的SD卡资源
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
9
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
7
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部