第十七篇 | 串口
文章平均质量分 92
北京迅为
让学习更简单,让开发更容易
展开
-
【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第六篇 嵌入式GUI开发篇-第八十二章 C++入门
在嵌入式上,我们少不了界面的开发,一种是用安卓,一种是用QT,那么安卓对CPU的性能要求比较高,不是所有的CPU都可以运行,但是QT对CPU要求不高,甚至可以在单片机上来运行,而且QT是一个非常优秀的跨平台工具,一套代码我们可以在多个平台上来运行,比如Windows,Android,Linux等,换一套编译器即可更换不同的平台。接下来我们就来学习上嵌入式上的QT开发,因为QT开发需要C++基础,不过大家不用担心,QT上用的C++并不多,手册上的C++知识大家掌握了即可开始QT的学习,大家不必担心。原创 2024-08-20 09:53:47 · 592 阅读 · 0 评论 -
【迅为电子】RK3568驱动指南|第十七篇 串口-第203章 GPS模块编程
如上图所示,打印GPS模块获取的位置信息,接收到的纬度为 N3854.616211,经度为 E11526.110352。除此之外,欧盟的伽利略卫星导航系统、中国的北斗卫星导航系统和印度的纳维克卫星导航系统也在逐步建设和发展中。GPRMC(Recommended Minimum Specific GNSS Data)是一种常见的GPS数据帧格式,用于在GPS设备之间或者GPS设备与其他设备之间传输GPS位置信息。表示定位模式,通常是'A'表示自主定位,'D'表示差分定位。原创 2024-08-17 16:32:31 · 1140 阅读 · 0 评论 -
【迅为电子】RK3568驱动指南|第十七篇 串口-第202章 串口编程
瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。【公众号】迅为电子【粉丝群】25881126原创 2024-08-17 16:24:14 · 1042 阅读 · 0 评论 -
【迅为电子】RK3568驱动指南|第十七篇 串口-第201章 端口注册流程分析
该函数用于注册一个tty设备到tty核心层,如果注册的设备是serdev设备,则不创建cdev。否则,通过调用 tty_register_device_attr() 函数创建cdev并注册该设备到tty核心层。该函数用于注册一个tty设备到tty核心层,包括创建cdev,并添加属性组。首先,它会根据驱动类型生成设备名称,并分配设备结构体内存空间,并设置设备的各个属性。在上面代码第13行中,tty_fops 是 tty 驱动中的文件操作结构体,它定义了 tty 设备文件的操作函数。原创 2024-08-17 16:01:39 · 591 阅读 · 0 评论 -
【迅为电子】RK3568驱动指南|第十七篇 串口-第200章uart_driver注册流程分析
在上面的第18行代码serial8250_ports[i]这声明了一个静态的数组 serial8250_ports,数组元素类型为 struct uart_8250_port,这个数组的大小为 UART_NR。uart_register_driver函数中的第51行代码tty_register_driver函数如下所示,定义在kernel/drivers/tty/tty_io.c。struct uart_driver封装了tty_driver,使得底层的UART驱动不需要关心tty_driver。原创 2024-08-17 15:43:19 · 1081 阅读 · 0 评论 -
【迅为电子】RK3568驱动指南|第十七篇 串口-第199章 串口子系统框架
串口子系统框架的层级设计将串口设备的功能分解为不同的层次,实现了功能的模块化和抽象化,方便开发者进行串口设备的驱动开发和维护。drivers/tty/serial/8250/8250_early.c # 8250 串口 early console 驱动。drivers/tty/serial/8250/8250_dma.c # 8250 串口 DMA 驱动。在瑞芯微官方提供的SDK内核源码里面,串口驱动使用的是8250通用串口驱动,以下是主要驱动文件。【粉丝群】258811263(加群获取驱动文档+例程)原创 2024-08-17 14:42:58 · 1036 阅读 · 0 评论 -
【迅为电子】RK3568驱动指南|第十七篇 串口-第198章 串口通信接口类型
因此,为了确保正常通信,必须进行适当的电平转换。DE是高电平时,DI有效,DI接的是UART7_TX_M1,UART7_RX_M1是串口发送引脚,因此,DE是高电平时,DI上的低电平使驱动器 同向端A输出为低电平,驱动器反向端B输出为高电平,串口可以发送数据,反之串口无法发送数据。(Transistor-Transistor Logic)电平标准,这是基于晶体管的电平标准,其中0表示低电平,1表示高电平,低电平一般是0V,高电平可以是3.3V,5V,2.5V或1.8V,具体值取决于设备的电源电压。原创 2024-08-17 14:27:04 · 792 阅读 · 0 评论 -
【迅为电子】RK3568驱动指南|第十七篇 串口-第197章 串口通信协议
如果在第二帧数据的传输过程中,总线再次被拉低并开始新的数据传输,那么前一帧数据末尾的高电平应为停止位,而非校验位。在上图中,我们打开了COM3串口调试,设置波特率为115200,这是因为RK3568源码中配置的串口波特率是115200。串口通信协议是确保数据在串口上稳定传输的关键,它涵盖了数据的格式,传输的规则,以及通信的流程。在上一小节我们学习了串口通信协议,现在我们将学习如何设置开发板调试串口,调试串口设置如下图所示,串口终端软件使用的是MobaXterm。:指每个字节中的数据位数,通常为7或8位。原创 2024-08-17 14:08:13 · 832 阅读 · 0 评论 -
【迅为电子】RK3568驱动指南|第十七篇 串口-第196章 串口简介
常见的标准波特率如9600、115200等,通常满足大多数应用需求,但在特定情况下,可能需要设置非标准的波特率,此时需确保所有通信设备都能支持和正确配置该波特率。具体来说,典型的串口通信只需要3根线,分别是地线(GND),发送线(TX),接收线(RX),如下图所示,发送和接收各用一条线,没有时钟线。在二进制系统中,比特率等于波特率,因为每个码元正好承载1个bit的信息。为了更好地理解比特率的概念,让我们举个例子:假如串口的波特率为9600,那么在二进制系统中,一秒钟可以传送多少个字节呢?原创 2024-08-16 13:55:39 · 948 阅读 · 0 评论