UART构件编程:禁止串口接收中断的实现与应用
需积分: 50 110 浏览量
更新于2024-08-10
收藏 3.88MB PDF 举报
"禁止串口接收中断-speech processing in modern communication--challenges and perspectives"
本文讨论的是在现代通信中处理语音的挑战与视角,特别是在嵌入式系统开发实践中的UART(通用异步收发传输器)编程。UART是一种常见的串行通信接口,在微控制器如飞思卡尔K60系列中广泛使用。在基于构件方法的UART编程中,重点是将UART的初始化、接收和发送功能封装成独立的函数,以实现模块化和易于移植的代码。
首先,UART构件包含三个基本操作:初始化、接收和发送。初始化函数配置UART模块的工作属性,接收和发送函数执行实际的数据传输。这些功能通常在名为`uart.c`的源代码文件中实现,并通过`uart.h`头文件提供对外接口,头文件中定义了模块的基本信息和函数原型。为了实现构件化,函数原型设计必须清晰且高效,以确保良好的代码结构和可维护性。
UART构件作为最底层的模块,向上提供初始化、接收单个字节、发送单个字节的服务,同时封装了接收和发送N个字节的子功能。在软件结构上,UART构件对应一个`uart.c`源码文件和一个`uart.h`头文件。在移植到其他平台时,通常只需要复制这两个文件,除非需要针对不同硬件的宏定义进行调整。
在使用UART构件时,应避免通过全局变量传递参数,而是直接通过函数参数进行数据传递,以保持接口简洁并减少潜在的安全风险。例如,设计的UART构件包括以下七个基本功能函数:
1. 初始化:`void uart_init(UART_MemMapPtr uartch, uint32 sysclk, uint32 baud)`,用于设置UART的波特率等参数。
2. 发送单个字节:`void uart_send1(UART_MemMapPtr uartch, uint8 ch)`,发送一个字节数据。
3. 接收单个字节:`uint8 uart_re1(UART_MemMapPtr uartch,uint8 *ch)`,接收一个字节数据。
4. 发送N个字节:`void uart_sendN(UART_MemMapPtr uartch ,uint8* buff,uint16 len)`,批量发送字节数组。
5. 接收N个字节:`uint8 uart_reN(UART_MemMapPtr uartch ,uint8* buff,uint16 len)`,接收指定长度的字节数组。
6. 使能串口接收中断:`void enableuartreint(UART_MemMapPtr uartch,uint8 irqno)`,开启UART接收中断功能。
7. 禁止串口接收中断:`void disableuartreint(UART_MemMapPtr uartch,uint8 irqno)`,关闭UART接收中断。
在K60芯片的开发环境中,如使用IAR或CodeWarrior,这些函数将帮助开发者高效地处理UART通信,包括中断驱动的接收和发送。书中还涉及了GPIO、定时器、A/D转换、SPI、I2C、I2S、Flash、CAN、USB、SDHC、TSI、以太网等其他模块的使用,为全面掌握K60系列微控制器的开发提供了详尽的指导。
本书《ARMCortexM4嵌入式系统开发实践——基于飞思卡尔K60系列微控制器》由王宜怀和王林编著,适合高校高年级学生、研究生以及嵌入式系统开发人员作为教材和参考,提供实例源代码、辅助资料和其他相关资源,以支持读者深入学习和实践。
2018-12-27 上传
2016-08-16 上传
2021-09-15 上传
2021-01-26 上传
2021-02-22 上传
2021-05-03 上传
2021-09-02 上传
2014-10-30 上传
2018-03-13 上传
黄子衿
- 粉丝: 20
- 资源: 2万+
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍