在集成系统的开发中,串行通信(UART)是最常用的基本通信方法之一。为了解决从串行端口的数据读取和写入数据的不连续性,通常将其与环缓冲区一起使用,以提供有效稳定的数据传输并接收高速缓存。在本文中,我们将根据STM32F4 MCU系列介绍书面通信控制器。它被包装为控制台界面,可与Send/Bufer接收使用中断方法并轻松调用系统。 1。定义并初始化串行缓冲串行端口的发送,并且收到的数据通常通过缓冲区中的存储机制来管理数据流,而不是直接读取和写入记录。此示例分别用于接收和发送两个环缓冲区RXBUF和TXBUF。 RING_BUF_INIT()称为ddd ddd serial端口的初始化以初始化缓冲区。 2。UART_INITSERIAL端口初始化功能此功能用于初始化用户1并完成以下步骤:初始化传输和接收缓冲区的控制结构。打开GPIOA和USERT1时钟。配置PIN多路复用函数的使用1(PA9→TX,PA10→RX)。设置GPIO模式(多路复用模式,无上层和较低)。配置串行端口参数(例如波特的速度)。配置NVIC中断优先级并启用USERT1的中断。 UART_INIT()基础串行端口配置的封装使后续调用更加简洁。 3。打开使用User_it_txe的使用。返回书面字节的实际数量。由于传输是通过中断执行的,因此可以简单地通过激活不知情来自动发送缓冲区数据。 4. UART_READSE串行端口的阅读功能用于读取接收缓冲区中的数据。从ring_buf_get()中取出RBRECV数据并将其放入buf。返回真正的阅读长度。足以阻止阅读电话。 5。以下缓冲状态咨询接口在“缓冲区状态咨询功能的代码”中定义:这些功能用于确定上层的逻辑是否可以继续传输,如果有数据等,以提高串行端口使用的灵活性。 6。TTY接口的结构封装了串行端口控制器,并最终以TTY_T结构的形式公开接口。此方法促进了串行端口控制接口的统一管理,适合引入“控制台抽象层”,用于多个串行端口的统一管理。 7.操作端口管理功能用户1_IRQHANDLER是串行端口控制器的中心部分,负责响应传输中断和USAT1的接收。主要包括以下处理逻辑:RBRECV接收缓冲仓库。发送TXE中断:以下字节从RBSEND传输缓冲区发送。如果没有数据要发送,则运输中断将关闭。 ORE_RX中断溢出错误:删除数据删除溢出标志位一次是读取的。串联端口的传输和接收处理的中断不仅避免了阻止操作,而且还保持了系统的高速数据传输的响应能力。 8.摘要:此控制器模块具有以下特征实现完整的串行通信功能:接收双缓冲区存储要发送和接收。使用基于PAIR IntruptionSto发送和接收数据的方法。它提供了一个国家决策接口,以促进更高级别的调用。封装为TTY_T控制台结构,以允许模块化应用程序。它的设计适用于在集成系统中同时工作的多个端口工作的场景,并且也适合作为基础驱动程序的支持CLI控制台的RT,清洗或卓越的计算机通信端口。可以有效避免环形缓冲区和结合数据和阻塞的丢失,这使其成为一种通用常用和常用用途的通信实现方法。