ZigBee学习——在官方例程上实现串口通信

Z-Stack版本为3.0.2
IAR版本为10.10.1

以下所有操作都是在APP层进行,也就是这个文件

在这里插入图片描述

一、添加头文件

因为要用到memset函数,所以需要添加头文件string.h

#include <string.h>

二、定义接收缓冲区

定义一个接收缓冲区,保存接收到的数据

unsigned char RxBuffer

三、编写Uart初始化函数

void halUartInit(void)
{
    halUARTCfg_t uartConfig;
    
    uartConfig.baudRate = HAL_UART_BR_115200;
    uartConfig.callBackFunc= UART_CBack;
    uartConfig.configured = TRUE;
    uartConfig.flowControl = FALSE;
    uartConfig.flowControlThreshold = 0;
    uartConfig.idleTimeout = 6;
    uartConfig.intEnable = TRUE;
    uartConfig.rx.maxBufSize = 128;
    uartConfig.tx.maxBufSize = 0;
    uartConfig.rx.pBuffer = RxBuffer;
    HalUARTOpen(HAL_UART_PORT_0,&uartConfig);
}

四、编写串口回调函数

接受完一次数据后,可以在这个函数里面做一些事,这里就是通过UART回传数据到串口助手

void UART_CBack(uint8 port,uint8 event)
{
    uint8 rxlen = Hal_UART_RxBufLen(HAL_UART_PORT_0);
    if(rxlen != 0)
    {
        HalUARTRead(HAL_UART_PORT_0,RxBuffer,rxlen);
        HalUARTWrite(HAL_UART_PORT_0,RxBuffer,rxlen);
        memset(TxBuffer,'0',128);		// 用完一次接收到的数据后清空缓冲区的数据
    }
}

五、函数声明

这个不用说的,或者你把上面两个函数放在调用它们之前,我是放在最后,所以才需要函数声明。

六、函数调用

在这里插入图片描述

七、可能遇到的问题(function “halUartInit“ has no prototype)

解决方案:Error[Pa045]: function “halUartInit“ has no prototype

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值