4.zigbee开发,串口的应用,串口数据的收发,ADC采集

一。串口应用

实验:串口数据的收发

0.在c盘的协议库中

        拷贝sampleApp

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第1张图片

1.串口的初始化

1.找到初始化

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第2张图片

2.在这个函数中加入函数初始化

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第3张图片

  //串口初始化
  halUARTCfg_t uart_Config;
  uart_Config.configured=TRUE;
  uart_Config.flowControl=FALSE;
  uart_Config.baudRate=HAL_UART_BR_115200;
  HalUARTOpen(HAL_UART_PORT_0,&uart_Config);

注意:DEMO格式不会打印,原因是不初始化网网络,不会进入此任务

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第4张图片

2.运行,烧录

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第5张图片

上述结果表明,串口运行成功。

二。实现功能

1.回调函数的使用

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第6张图片

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第7张图片

uart_Config.callBackFunc=NULL;

注意:这个NULL以后需要修改,修改成我们所写的回调函数名。

2.回调函数的实现

(1)hal库中有回调的函数

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第8张图片

(2)对回调的函数进行处理

在任意的地方写上一个回调函数(SampleApp.c中),名称命名为uart_callback

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第9张图片

void uart_callback (uint8 port, uint8 event){
  uint16 buflen = Hal_UART_RxBufLen(HAL_UART_PORT_0);
  uint8 buf[128];
  if(port == HAL_UART_PORT_0)
  {
    HalUARTRead(HAL_UART_PORT_0,buf,buflen);
    if(event&(HAL_UART_RX_FULL|HAL_UART_RX_ABOUT_FULL|HAL_UART_RX_TIMEOUT))
    {
      HalUARTWrite(HAL_UART_PORT_0,buf,buflen);
      HalUARTWrite(HAL_UART_PORT_0,"\r\n",strlen("\r\n"));      
    }
  }  
}

(3)在初始化中加入串口的初始化

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第10张图片

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第11张图片

    //串口初始化
   halUARTCfg_t uart_config = {
    TRUE,
    HAL_UART_BR_115200,
    FALSE,
  };
  uart_config.callBackFunc = uart_callback;
  HalUARTOpen(HAL_UART_PORT_0,&uart_config);

结果:

串口初始化+回调函数的编写=对来回数据的读写

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第12张图片

出现报错

问题:

        表示没有函数原型。

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第13张图片

解决方法:

        在option中去掉需要函数原型。

4.zigbee开发,串口的应用,串口数据的收发,ADC采集_第14张图片

补充:ADC的采集

回调函数中对ADC的数据进行处理即可。

你可能感兴趣的:(单片机,嵌入式硬件)