单片机处理串口逗号分隔符命令
串口接收回调函数如下:
/*** @brief Rx Transfer completed callbacks.* @param huart pointer to a UART_HandleTypeDef structure that contains* the configuration information for the specified UART module.* @retval None*/ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { /* Prevent unused argument(s) compilation warning */UNUSED(huart);/* NOTE: This function Should not be modified, when the callback is needed,the HAL_UART_TxCpltCallback could be implemented in the user file*/ if(huart->Instance == huart1.Instance){ if(bRx1_complete != 0)return;//接收的命令还没处理完,不再接收新数据if(Uart1_Rx_Cnt >= 255) //溢出判断 {Uart1_Rx_Cnt = 0;memset(Uart1_RxBuff,0x00,sizeof(Uart1_RxBuff)); }else{Uart1_RxBuff[Uart1_Rx_Cnt] = aRx1Buffer; //接收数据转存Uart1_Rx_Cnt++;if((Uart1_RxBuff[Uart1_Rx_Cnt-1] == 0x0A)&&(Uart1_RxBuff[Uart1_Rx_Cnt-2] == 0x0D)) //判断结束位(回车换行符) { Uart1_Rx_Cnt= 0;bRx1_complete = 1;//接收完成 }} } HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRx1Buffer, 1); //再开启接收中断 }
解析每个逗号前的字符
if(bRx1_complete == 1){char *ptr,*retptr;int i=0;ptr = Uart1_RxBuff;//指针指向串口1接收的缓冲数组while ((retptr=strtok(ptr, ",")) != NULL) {//逐个解析逗号前的字符printf("substr[%d]:%s\r\n", i++, retptr);//打印每个逗号前的字符switch(i){case 1:SavePara(retptr,ppara1);break;//保存第1个字符case 2:SavePara(retptr,ppara2);break;case 3:SavePara(retptr,ppara3);break;case 4:SavePara(retptr,ppara4);break;case 5:SavePara(retptr,ppara5);break;case 6:SavePara(retptr,ppara6);break;//保存第6个字符default:break;}ptr = NULL;} }
转载于:https://www.cnblogs.com/lizhiqiang0204/p/11532052.html
单片机处理串口逗号分隔符命令相关推荐
- 基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文)
基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文) 导读:触摸屏能够直观.生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好.触摸屏和单片机通信,需要根据触 ...
- Matlab与单片机的串口通信-matlab…
Matlab提供了对串口进行 打开. 关闭.以及 串口参数设置等操作的一系列 函数.利用这些函数可以选择串口号. 设置串口通信参数( 波特率. 数据位.停止位. 校验位等).进行中断控制. ...
- MATLAB与51单片机进行串口通信详解
目录 一.51单片机与电脑进行串口通信 二.MATLAB串口通信函数 三.串口属性 四.示例Demo 4.1 MATLAB接收单片机发来的数据 4.2 MATLAB向单片机发送数据控制LED 五.总结 ...
- c语言stm32串口控制单片机,基于STM32F103C8T6单片机电脑串口通讯控灯设计(原理图+程序+论文)...
题目:基于STM32F103C8T6单片机电脑串口通讯控灯设计 内容要求: 一. 任务 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换.在现代工业控 ...
- labVIEW与单片机实现串口通信的设计过程
1.概述 在现代测控系统中,我们经常会采用上位机和下位机的开发控制模式.下位机主要是用来采集数据,可以通过嵌入式控制器.单片机控制器.PLC等来实现.上位机主要是图形界面,用来实时显示采集数据,并进行 ...
- Python中将pandas的dataframe拷贝到剪切板并保持格式实战:to_clipboard()函数、复制到Excel文件、复制到文本文件(默认是tsv格式)、复制到文本文件(设置逗号分隔符)
Python中将pandas的dataframe拷贝到剪切板并保持格式实战:to_clipboard()函数.复制到Excel文件.复制到文本文件(默认是tsv格式).复制到文本文件(设置逗号分隔符) ...
- 把文件每行的tab键分隔符改成逗号分隔符
###################################### #把文件每行的tab键分隔符改成逗号分隔符 # ##################################### ...
- arm linux串口控制led,通信程序设计 - Linux下ARM和单片机的串口通信设计
3 通信程序设计 ARM 与单片机的串口通信程序包括两方面: 一方面是作为上位机的ARM 的串口通信程序,另一方面是作为下位机的单片机的串口通信程序.在通信之前必须制定合理的通信协议以保证通信的可靠性 ...
- matlab fwrite 多字节,单片机多字节串口接收
工作了一年多,写了不少单片机串口程序.感觉串口多字节接收部分的逻辑相对于配置寄存器跟串口回复来说,是有点难度的--寄存器配置基本上都是死的,串口回复多字节跟回复一字节只是多了一个循环. 串口接收程序是 ...
最新文章
- sdn和nfv的区别—Vecloud微云
- 稀疏表示介绍(中)、(下)
- 【2020年第12届全国大学生数学竞赛——资源分享 】【1~11届省赛决赛考题及题解(数学类、非数学类)、推荐学习网址、复习备考书籍推荐】
- Sybase数据库中找回丢失的sa密码
- day 04 作业 循环和分之
- 手写一个promise用法_手写一个Promise
- qt与JAVA服务器通信_Qt实现的SSL通信客户端和服务器
- div加jquery实现iframe标签的功能
- oracle之sqlloader
- w10 计算机配置管理模板,win10老是配置更新,设置这个,让你无处可更...
- Qt QPainter绘图
- 自动尺寸标注 html,PxCook - 高效易用的自动标注工具,生成前端代码,设计研发协作利器...
- HDU 6082 度度熊与邪恶大魔王 (完全背包)
- CAD - 创建块、插入块
- 嵌入式驱动那年的笔试面试-有干货
- c语言控制倒车雷达系统设计,超声波倒车雷达系统的设计方案.doc
- 谷歌首篇电子病历论文定义了预测精度的评估指标用_AI性能基准测试从此有了中国标准!英伟达、谷歌可以试试这套算力卷...
- NLTK 基本语料库函数
- U盘中的文件无故丢失怎么办
- 将MySQL版本从5.7升级到8.0的操作过程和注意事项