串口收发十六进制_串口模块---讲三层架构前的铺垫

本文介绍了串口模块,包括串口接收和发送的函数,作为三层架构讲解的铺垫。串口模块包含mid_serial.h和mid_serial.c文件,用于抽象串口通信功能。接收部分涉及中断处理和接收缓冲区管理;发送部分包括发送缓冲区和不同数据格式的发送函数。此外,文章还展示了模块在实际项目中的应用和使用示例。
摘要由CSDN通过智能技术生成
5882255406a46eb8919e4a84fa3e43ab.png

在说三层架构之前,先介绍一下串口模块的相关函数,这个模块把串口发送以及接收相关的功能给抽象出来了。我后面将以这个模块为例介绍设计三层架构的方法。之所以要以这个模块为例子,是因为如果介绍3层架构的例子过于简单或者过于复杂都不够实用,而串口模块部分没那么简单也没那么难,比较适合做为讲3层架构的例子。另外学习这个模块还有另一个好处,那就是可以应用在你的实际项目中,比如打印调试信息或者用于普通的串口信息收发等等。因此,搞清楚这个模块还是必要且有用的。
串口模块主要分为两个部分,一个部分函数是用来发送信息。一部分函数用来接收串口信息。因为串口的接收部分相对简单,我先从接收部分开始讲。
串口模块主要放在两个文件中,一个是mid_serial.h,一个是mid_serial.c。
首先看一下mid_serial.h文件,这个文件定义了mid_serial.c中用到的函数以及一些宏定义。各个宏定义的意思会在mid_serial.c中做详细解释。

  1. #ifndef _MID_UART_
  2. #define _MID_UART_
  3. #include "hal.h" //硬件层接口
  4. #define UART_TX_BUF_LENGTH_1 0
  5. #define UART_TX_BUF_LENGTH_2 1
  6. #define UART_TX_BUF_LENGTH_4 3
  7. #define UART_TX_BUF_LENGTH_8 7
  8. #define UART_TX_BUF_LENGTH_16 15
  9. #define UART_TX_BUF_LENGTH_32 31
  10. #define UART_TX_BUF_LENGTH_64 63
  11. #define UART_TX_BUF_LENGTH_128 127
  12. #define UART_TX_BUF_LENGTH_256 255
  13. //在源码中解释
  14. #define UART0_RX_TIMEOUT_TIME 3
  15. //接收缓冲区长度
  16. #define UART0_RX_FIFO_LENGTH 64
  17. //在源码中解释
  18. #define UART0_TX_BUF_COUNT UART_TX_BUF_LENGTH_64
  19. //设置发送缓冲区长度
  20. #define UART0_TX_FIFO_LENGTH (UART_TX_BUF_LENGTH_64+1)
  21. //app_u0_rx_handle() --- 这个函数定义在应用层,用户用来处理串口接收到的数据
  22. //之所以放到这个文件,是因为要移植这个代码的话把要改的东西统一放到一个文件,
  23. //这样便于维护.
  24. #define SERIAL0_RECEIVER_FUNCTION(fifo, len) app_u0_rx_handle(fifo, len)
  25. //初始化串口模块相关参数
  26. extern void serial_parameters_init(void );
  27. //串口的数据接收管理
  28. extern void serial_u0_receiver_data_manage();
  29. //将串口数据保存在缓存中
  30. extern void serial_u0_receiver_data(uint8_t rx_dt);
  31. //发送十六进制数据
  32. extern void seria
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值