串口接收回调函数如下:

/*** @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

单片机处理串口逗号分隔符命令相关推荐

  1. 基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文)

    基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文) 导读:触摸屏能够直观.生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好.触摸屏和单片机通信,需要根据触 ...

  2. Matlab与单片机的串口通信-matlab…

          Matlab提供了对串口进行 打开. 关闭.以及 串口参数设置等操作的一系列 函数.利用这些函数可以选择串口号. 设置串口通信参数( 波特率. 数据位.停止位. 校验位等).进行中断控制. ...

  3. MATLAB与51单片机进行串口通信详解

    目录 一.51单片机与电脑进行串口通信 二.MATLAB串口通信函数 三.串口属性 四.示例Demo 4.1 MATLAB接收单片机发来的数据 4.2 MATLAB向单片机发送数据控制LED 五.总结 ...

  4. c语言stm32串口控制单片机,基于STM32F103C8T6单片机电脑串口通讯控灯设计(原理图+程序+论文)...

    题目:基于STM32F103C8T6单片机电脑串口通讯控灯设计 内容要求: 一. 任务 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换.在现代工业控 ...

  5. labVIEW与单片机实现串口通信的设计过程

    1.概述 在现代测控系统中,我们经常会采用上位机和下位机的开发控制模式.下位机主要是用来采集数据,可以通过嵌入式控制器.单片机控制器.PLC等来实现.上位机主要是图形界面,用来实时显示采集数据,并进行 ...

  6. Python中将pandas的dataframe拷贝到剪切板并保持格式实战:to_clipboard()函数、复制到Excel文件、复制到文本文件(默认是tsv格式)、复制到文本文件(设置逗号分隔符)

    Python中将pandas的dataframe拷贝到剪切板并保持格式实战:to_clipboard()函数.复制到Excel文件.复制到文本文件(默认是tsv格式).复制到文本文件(设置逗号分隔符) ...

  7. 把文件每行的tab键分隔符改成逗号分隔符

    ###################################### #把文件每行的tab键分隔符改成逗号分隔符 # ##################################### ...

  8. arm linux串口控制led,通信程序设计 - Linux下ARM和单片机的串口通信设计

    3 通信程序设计 ARM 与单片机的串口通信程序包括两方面: 一方面是作为上位机的ARM 的串口通信程序,另一方面是作为下位机的单片机的串口通信程序.在通信之前必须制定合理的通信协议以保证通信的可靠性 ...

  9. matlab fwrite 多字节,单片机多字节串口接收

    工作了一年多,写了不少单片机串口程序.感觉串口多字节接收部分的逻辑相对于配置寄存器跟串口回复来说,是有点难度的--寄存器配置基本上都是死的,串口回复多字节跟回复一字节只是多了一个循环. 串口接收程序是 ...

最新文章

  1. sdn和nfv的区别—Vecloud微云
  2. 稀疏表示介绍(中)、(下)
  3. 【2020年第12届全国大学生数学竞赛——资源分享 】【1~11届省赛决赛考题及题解(数学类、非数学类)、推荐学习网址、复习备考书籍推荐】
  4. Sybase数据库中找回丢失的sa密码
  5. day 04 作业 循环和分之
  6. 手写一个promise用法_手写一个Promise
  7. qt与JAVA服务器通信_Qt实现的SSL通信客户端和服务器
  8. div加jquery实现iframe标签的功能
  9. oracle之sqlloader
  10. w10 计算机配置管理模板,win10老是配置更新,设置这个,让你无处可更...
  11. Qt QPainter绘图
  12. 自动尺寸标注 html,PxCook - 高效易用的自动标注工具,生成前端代码,设计研发协作利器...
  13. HDU 6082 度度熊与邪恶大魔王 (完全背包)
  14. CAD - 创建块、插入块
  15. 嵌入式驱动那年的笔试面试-有干货
  16. c语言控制倒车雷达系统设计,超声波倒车雷达系统的设计方案.doc
  17. 谷歌首篇电子病历论文定义了预测精度的评估指标用_AI性能基准测试从此有了中国标准!英伟达、谷歌可以试试这套算力卷...
  18. NLTK 基本语料库函数
  19. U盘中的文件无故丢失怎么办
  20. 将MySQL版本从5.7升级到8.0的操作过程和注意事项

热门文章

  1. 详解CSS伪类与伪元素
  2. DTC之DTC Status状态位
  3. Redis-replicator作者陈宝仪:详解Redis协议
  4. 【Linux】基本的指令(终章)
  5. IDEA的SVN配置
  6. 国内自助建站平台哪些适合小白用户想建站?
  7. Oracle 中的外键约束
  8. 缓存溢出Buffer Overflow
  9. 谷粒商城P16人人开源登录没有反应
  10. CSO面对面丨顺丰科技谭林谈物流企业安全建设:实战是检验防护能力的唯一标准