《传感网应用开发(高级)课件75NBIoT通信应用开发(代码部分讲解).ppt》由会员分享,可在线阅读,更多相关《传感网应用开发(高级)课件75NBIoT通信应用开发(代码部分讲解).ppt(25页珍藏版)》请在三一办公上搜索。
1、,“1+X”传感网应用开发 NB-IoT通信应用开发,01,全局变量、自定义函数的声明,02,自定义函数功能解析,03,主函数功能代码,目录,CONTENTS,01,掌握工程文件的添加,02,掌握变量定义及函数声明方式,03,掌握NB模块的基本配置步骤,技能知识点,CONTENTS,04,掌握光照控制灯及模式切换应用开发,1,全局变量、自定义函数的声明,知识链接,STM32CubeMX生成工程介绍,01,通过前次课程的学习,大家已经掌握了使用STM32CubeMX快速生成项目的方法。通过STM32CubeMX新建工程,快捷、方便,比使用keil5更加易于理解,不抽象。,1、头文件的添加2、自定
2、义变量的添加3、自定义函数的声明,02,(1)、打开main.c 文件,(2)、头文件,变量及函数声明处,1、头文件的添加2、自定义变量的添加3、自定义函数的声明,02,(1)、添加新增的头文件引用,内容如下:#include user_cloud.h#include user_oled.h#include user_usart1.h#include user_usart2.h#include key.h#include oled.h,(2)、添加变量声明 uint8_t usart1RxBuf; /串口1接收缓存 uint8_t usart2RxBuf; /串口2接收缓存,(3)、添加自定义
3、函数声明 int fputc(int ch,FILE *f); /定向输出函数float get_illumination_value(); /ADC采集并转化为光照值void control_light(uint8_t status); /控制灯亮灭功能函数void automatic_mode(int value,int *light_flag); /根据光照强度自动控制灯亮灭的功能函数void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart); /串口中断服务程序void HAL_UART_ErrorCallback(UART_Hand
4、leTypeDef *huart); /串口错误处理程序,2,自定义函数功能解析,任务要求,本任务要求用户编写功能函数,实现以下函数功能(1)串口的定向输出程序(2)光照强度采集及处理程序(3)灯的亮灭控制程序(4)根据光强自动控制程序(5)串口中断服务程序(6)串口中断错误处理程序,功能函数,06,1,在main.c文件添加函数:(此处添加位置任意,前面已经声明),int fputc(int ch,FILE *f) HAL_UART_Transmit(,float get_illumination_value() float adcValue; float illumination_valu
5、e; HAL_ADC_Start( ,通过IO口输出高低电平控制继电器开关,进而控制灯的亮灭。此处使用的IO引脚为PA8,oled_display_light_status为LED屏幕显示函数,显示灯的亮灭状态,03,void control_light(uint8_t status) if(status=LIGHT_OPEN) HAL_GPIO_WritePin(Light_GPIO_Port,Light_Pin,GPIO_PIN_SET); oled_display_light_status(LIGHT_OPEN); else HAL_GPIO_WritePin(Light_GPIO_Po
6、rt,Light_Pin,GPIO_PIN_RESET); oled_display_light_status(LIGHT_CLOSE); ,void automatic_mode(int value,int *light_flag) static int now_ill_value; if(value3) ,void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) if(huart=,1,当串口出现错误时,会进入到此处,先将串口的错误码发送给上位机,再根据串口号,重新打开串口中断。,06,void HAL_UART_ErrorCallba
7、ck(UART_HandleTypeDef *huart) printf(usart Error:%xrn,huart-ErrorCode); huart-ErrorCode=HAL_UART_ERROR_NONE; if(huart= /重新打开串口2接收中断,3,主函数功能代码添加,知识链接,参数介绍,01,OLED_Init();keys_init();oled_display_information();oled_display_connection_status(LINKING);oled_display_light_status(LIGHT_CLOSE);oled_show_mode(MANUAL);HAL_UART_Receive_IT(,3,