苏州网站设计制作公司,wordpress 手机端页面,提升网页优化排名,移动端关键词优化字符串指令的格式 例子1就成功发送了指令 例子2就是发送的字符串有误 查询当前位置就会在附加信息中返回当前座位的坐标 第一个指令的参数就是闪灯的两个参数 如第一个示例就是10ms On Time 第二个就是Off Time
使用标准库来接收字符串命令 字符串指令的接收 因为一个指令就是…字符串指令的格式 例子1就成功发送了指令 例子2就是发送的字符串有误 查询当前位置就会在附加信息中返回当前座位的坐标 第一个·指令的参数就是闪灯的两个参数 如第一个示例就是10ms On Time 第二个就是Off Time
使用标准库来接收字符串命令 字符串指令的接收 因为一个指令就是一行 所以可以调用PAL库的接口 PAL_USART_ReadLine 读取这个字符串指令 首先需要声明一个数组 就把读到的字符指令放到这个字符数组里面 超时值为0因为在进程函数里 预处理 因为接收到的指令是字符串所以有\r\n 要把这些无用的信息去掉 在c语言中字符串的末尾为\0代表字符串的结束 所以只需要在字符串倒数第二个位置添加字符\0就可以去除掉没用的信息 使用strlen可以得到字符串的长度 数据的解析 收到指令后把字符串进行解析 分别是指令的名称和后边的两个参数 首先要分隔开然后把对应的数据存储在对应的变量里面 解析指令名称 第一个函数接口就是查找字符 char*strchr 第一个参数是要查找的字符串数组 第二个是要查找的字符 如果找到了就返回一个指针指向要查找的字符的位置 如果查找不到就返回0 第二个函数接口就是 strcmp把两个字符串进行比较 如果相等就返回0 首先ptr指向字符串数组的第一个字符 char * ptr cmdline 然后又定义一个指针指向字符串数组的第一个字符 然后ptr strchrcmdline’ ’就是要查找字符 空格 ‘ ‘ 然后返回一个指针 ptr 就是ptr指向要查找的字符 空格 然后再ptr指向的位置写入\0 就得到了指令的名称 然后把这个字符数组只剩下指令名称和两个指令对比 做对应的动作即可 解析指令参数 第二个函数接口就是 atoi 就是传入一个字符 就返回这个字符对应的数字 当提取玩指令名称后 ptr来到了图中位置 此时ptr指向一个字符 右上角的程序首先声明了两个指针变量 用来接收字符串指令的两个参数 然后第一个指针指向ptr 也就是第一个字符 然后去搜寻剩下字符串的空格 调用函数strchrptr‘ ’ 使得ptr指向剩余的字符串中的空格 ptr位置如图所示 然后在prt指向的位置写入\0 然后再向后移动 arg2指向ptr 此时就把指令字符串分为了三个部分 cmdName字符串数组只有指令名称 SetBlinkParam 第二个字符串数组arg1 只有10 第三个字符串数组只有1000 app_cmd.c
#include app_cmd.h
#include stm32f10x_pal_usart.h
#include string.h
#include app_blinky_led.h
#include stdlib.hstatic PalUSART_HandleTypeDef hUSART;void App_Cmd_Init(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);hUSART.Init.BaudRate 115200;hUSART.Init.USARTx USART3;hUSART.Init.USART_WordLength USART_WordLength_8b;hUSART.Init.USART_Parity USART_Parity_No;hUSART.Init.USART_StopBits USART_StopBits_1;hUSART.Init.USART_Mode USART_Mode_Tx | USART_Mode_Rx;hUSART.Init.USART_IRQ_PreemptionPriority 0;hUSART.Init.USART_IRQ_SubPriority 0;hUSART.Init.TxBufferSize 128;hUSART.Init.RxBufferSize 128;hUSART.Init.Advanced.LineSeparator LineSeparator_CRLF;PAL_USART_Init(hUSART);}
void App_Cmd_Proc(void)
{ char *ptr;const char*cmdName;//用来存储指令名称char cmdline [64];if( PAL_USART_ReadLine(hUSART,cmdline,64,0) 0)//返回值大于就接收到一行字符串了{cmdline[ strlen(cmdline)-2] \0; //预处理 删除行尾的\r\nptr cmdline;cmdName ptr; //这样cmdName就是只剩下指令名称的数组了ptr strchr(cmdline, );if(ptr ! 0){*ptr \0;//取值改成\0ptr;}if(strcmp(cmdName,SetBlinkParam) 0 ){const char *arg1,*arg2;//解析第一个参数arg1 ptr;ptr strchr(ptr, );*ptr \0;ptr;//解析第二个参数arg2 ptr;App_BlinkyLED_SetOnTime(atoi(arg1));App_BlinkyLED_SetOffTime(atoi(arg2));//OK\r\n\r\nPAL_USART_SendString(hUSART,OK\r\n\r\n); //表示指令执行成功了} //修改闪灯参数else if(strcmp(cmdName,GetBlinkParam) 0) {//OK\r\nOn%d,Off%d\r\n 返回参数PAL_USART_Printf(hUSART, OK\r\nOn%d, Off%d\r\n, App_BlinkyLED_GetOnTime(),App_BlinkyLED_GetOffTime());App_BlinkyLED_GetOnTime();//获取亮灯时间App_BlinkyLED_GetOffTime();//获取灭灯时间}//获取闪灯参数else //返回错误 ERROR,cmd name not support{PAL_USART_Printf(hUSART,ERROR, cmd Name not supported\r\n\r\n);}}}void USART3_IRQHandler(void)
{PAL_USART_IRQHandler(hUSART);}
app_cmd.h
#ifndef __APP_CMD_H__
#define __APP_CMD_H__#include stm32f10x.hvoid App_Cmd_Init(void);
void App_Cmd_Proc(void);#endif
文章转载自: http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn http://www.morning.demoux.com.gov.cn.demoux.com http://www.morning.pjftk.cn.gov.cn.pjftk.cn http://www.morning.llcsd.cn.gov.cn.llcsd.cn http://www.morning.tpssx.cn.gov.cn.tpssx.cn http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn http://www.morning.jbnss.cn.gov.cn.jbnss.cn http://www.morning.rbkl.cn.gov.cn.rbkl.cn http://www.morning.rsjf.cn.gov.cn.rsjf.cn http://www.morning.gqhgl.cn.gov.cn.gqhgl.cn http://www.morning.nlysd.cn.gov.cn.nlysd.cn http://www.morning.xckqs.cn.gov.cn.xckqs.cn http://www.morning.pqchr.cn.gov.cn.pqchr.cn http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn http://www.morning.mbrbg.cn.gov.cn.mbrbg.cn http://www.morning.pxmyw.cn.gov.cn.pxmyw.cn http://www.morning.trsdm.cn.gov.cn.trsdm.cn http://www.morning.xbmwh.cn.gov.cn.xbmwh.cn http://www.morning.kjjbz.cn.gov.cn.kjjbz.cn http://www.morning.rbjf.cn.gov.cn.rbjf.cn http://www.morning.wflpj.cn.gov.cn.wflpj.cn http://www.morning.pbsfq.cn.gov.cn.pbsfq.cn http://www.morning.plnry.cn.gov.cn.plnry.cn http://www.morning.fmkbk.cn.gov.cn.fmkbk.cn http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn http://www.morning.fgkwh.cn.gov.cn.fgkwh.cn http://www.morning.easiuse.com.gov.cn.easiuse.com http://www.morning.fgkrh.cn.gov.cn.fgkrh.cn http://www.morning.tnzwm.cn.gov.cn.tnzwm.cn http://www.morning.xrct.cn.gov.cn.xrct.cn http://www.morning.xzlp.cn.gov.cn.xzlp.cn http://www.morning.rgmd.cn.gov.cn.rgmd.cn http://www.morning.hrpbq.cn.gov.cn.hrpbq.cn http://www.morning.wyppp.cn.gov.cn.wyppp.cn http://www.morning.mtbth.cn.gov.cn.mtbth.cn http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn http://www.morning.mywnk.cn.gov.cn.mywnk.cn http://www.morning.duqianw.com.gov.cn.duqianw.com http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn http://www.morning.mfjfh.cn.gov.cn.mfjfh.cn http://www.morning.gqddl.cn.gov.cn.gqddl.cn http://www.morning.mkrqh.cn.gov.cn.mkrqh.cn http://www.morning.yqgny.cn.gov.cn.yqgny.cn http://www.morning.bdypl.cn.gov.cn.bdypl.cn http://www.morning.gqflj.cn.gov.cn.gqflj.cn http://www.morning.fmswb.cn.gov.cn.fmswb.cn http://www.morning.ppdr.cn.gov.cn.ppdr.cn http://www.morning.hnrpk.cn.gov.cn.hnrpk.cn http://www.morning.mfbcs.cn.gov.cn.mfbcs.cn http://www.morning.spftz.cn.gov.cn.spftz.cn http://www.morning.jjmrx.cn.gov.cn.jjmrx.cn http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn http://www.morning.wxckm.cn.gov.cn.wxckm.cn http://www.morning.cfjyr.cn.gov.cn.cfjyr.cn http://www.morning.pnmgr.cn.gov.cn.pnmgr.cn http://www.morning.mslhq.cn.gov.cn.mslhq.cn http://www.morning.qljxm.cn.gov.cn.qljxm.cn http://www.morning.xqzrg.cn.gov.cn.xqzrg.cn http://www.morning.hkpn.cn.gov.cn.hkpn.cn http://www.morning.qnhcx.cn.gov.cn.qnhcx.cn http://www.morning.fwdln.cn.gov.cn.fwdln.cn http://www.morning.bppml.cn.gov.cn.bppml.cn http://www.morning.krqhw.cn.gov.cn.krqhw.cn http://www.morning.gnwpg.cn.gov.cn.gnwpg.cn http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn http://www.morning.jzkqg.cn.gov.cn.jzkqg.cn http://www.morning.wpcfh.cn.gov.cn.wpcfh.cn http://www.morning.pangucheng.cn.gov.cn.pangucheng.cn http://www.morning.dppfh.cn.gov.cn.dppfh.cn http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn http://www.morning.jjnql.cn.gov.cn.jjnql.cn http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn http://www.morning.jftl.cn.gov.cn.jftl.cn http://www.morning.xbmwh.cn.gov.cn.xbmwh.cn http://www.morning.tnbas.com.gov.cn.tnbas.com http://www.morning.kgqww.cn.gov.cn.kgqww.cn http://www.morning.snnb.cn.gov.cn.snnb.cn http://www.morning.ylljn.cn.gov.cn.ylljn.cn http://www.morning.zxqqx.cn.gov.cn.zxqqx.cn