一.串口问题
有问题发送邮件至468078841@qq.com
关于串口的一些常识欢迎点击进入串口中断
二.协议栈串口需用函数解读
这部分主要讲述串口发送问题在协议栈中
#include "hal_uart.h"
#include "MT_UART.h"
这两个文件中封装着关于串口的API函数
关于串口的日常收发问题我们主要使用以下的几个函数
(一)在#include "MT_UART.h"函数中
函数名:MT_UartInit
函数作用:MT层初始化串口
函数原型:
void MT_UartInit ()
{
halUARTCfg_t uartConfig;
/* Initialize APP ID */
App_TaskID = 0;
/* UART Configuration */
uartConfig.configured = TRUE;//确定配置
uartConfig.baudRate = MT_UART_DEFAULT_BAUDRATE; //这里是波特率
uartConfig.flowControl = MT_UART_DEFAULT_OVERFLOW;//流控
uartConfig.flowControlThreshold = MT_UART_DEFAULT_THRESHOLD;//在RX缓存达到maxRxBufSize之前还有多少字节空余。当到达maxRxBufSize –flowControlThreshold时并且流控制打开时,会触发相应的应用事件:MT_UART_DEFAULT_THRESHOLD
uartConfig.rx.maxBufSize = MT_UART_DEFAULT_MAX_RX_BUFF;//最大接受字节
uartConfig.tx.maxBufSize = MT_UART_DEFAULT_MAX_TX_BUFF;//最大发送字节
uartConfig.idleTimeout = MT_UART_DEFAULT_IDLE_TIMEOUT;//接受数据时间
uartConfig.intEnable = TRUE; //使能
#if defined (ZTOOL_P1) || defined (ZTOOL_P2)
uartConfig.callBackFunc = MT_UartProcessZToolData;
#elif defined (ZAPP_P1) || defined (ZAPP_P2)
uartConfig.callBackFunc = MT_UartProcessZAppData;
#else
uartConfig.callBackFunc = NULL; //回调函数 这个很有用
#endif
/* Start UART */
#if defined (MT_UART_DEFAULT_PORT)
HalUARTOpen (MT_UART_DEFAULT_PORT, &uartConfig); //串口初始化
#else
/* Silence IAR compiler warning */
(void)uartConfig;
#endif
/* Initialize for ZApp */
#if defined (ZAPP_P1) || defined (ZAPP_P2)
/* Default max bytes that ZAPP can take */
MT_UartMaxZAppBufLen = 1;
MT_UartZAppRxStatus = MT_UART_ZAPP_RX_READY;
#endif
}
(二)函数名:extern void MT_UartRegisterTaskID( uint8 taskID );
函数作用:注册串口任务
函数原型:
void MT_UartRegisterTaskID( byte taskID )
{
App_TaskID = taskID;
}
(三)在#include "hal_uart.h"文件中
函数名:extern uint16 HalUARTRead ( uint8 port, uint8 *pBuffer, uint16 length );
函数作用:读取 port 串口 将 length 字节内容读取到 pBuffer
函数原型:
uint16 HalUARTRead(uint8 port, uint8 *buf, uint16 len)
{

本文深入讲解串口通讯原理,涵盖串口中断、协议栈函数解析、串口初始化、消息收发及回调函数实现。通过实例演示如何在协议栈中处理串口事件,包括常见问题解决与双串口调试技巧。
&spm=1001.2101.3001.5002&articleId=108357475&d=1&t=3&u=35bc4e6645d74493bc5d8a8631bb931d)
1821

被折叠的 条评论
为什么被折叠?



