基于zigbee协议栈的串口通信(二)

在日常使用协议栈的过程中串口通信基本上是我们使用的比较多的,可以用于系统的调试信息的查看,也可以用于与其它可以通过串口的单片机进行通信,所以一个串口是难以满足我们的要求的,而在协议栈有给我定义好的串口函数,没有了解过的可以去看基于zigbee协议栈的串口通信(一)_没 名 字的博客-CSDN博客


 

在本次中是如何使用第二个串口,zigbee协议栈的一般使用的是串口0和串口1,在上一篇中所使用的是串口0,串口0的是P02和P03,串口1使用的是P04,P05.它的使用方法几乎和串口0一摸一样。首先是使用初始化函数进行初始化串口:

void UartInitPort1( halUARTCBack_t SerialCallBack )//配置USART1接到IOT模块
{
  halUARTCfg_t uartConfig;

  // configure UART
  uartConfig.configured           = TRUE;
  uartConfig.configured             =TRUE;//串口配置为真
  uartConfig.baudRate               =HAL_UART_BR_115200;//波特率为115200
  uartConfig.flowControl            =FALSE;//流控制为假
  uartConfig.callBackFunc         = SerialCallBack;//回调函数函数名
  // start UART
  // Note: Assumes no issue opening UART port.
  HalUARTOpen( HAL_UART_PORT_1, &uartConfig );

}

然后编写回调函数,不使用也可以不写

void SerialCallBack(uint8 port,uint8 event)
{

  unsigned char flag=0,j=0;
  //HalUARTRead(0,uartbuf,1);
  while (Hal_UART_RxBufLen(1)) //检测串口数据是否接收完成
  {
    HalUARTRead (1,&uartbuf2[j], 1);  //把数据接收放到buf中
    j++;                           //记录字符数
    flag=1;                         //已经从串口接收到信息
  } 
 
 if(flag)//收到数据了 收据全部收完了
 {
    IOT_RecdataPut();          //对模块接收到的数据进行处理
    HalUARTWrite(0,uartbuf2,j); //将接收到的数据打印出来
    IOT_Status.Reclen=j;       //获取接收到的数据长度
        
   }
 }

然后就可以在Sampleapp_initl里面进行初始化函数的调用,就可以在后面使用串口1了

HalUARTWrite(1,"successful",osal_strlen("successful"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值