当前位置: 首页 > news >正文

郴州卖房网站/口碑营销的步骤

郴州卖房网站,口碑营销的步骤,二手房,百度官网网站登录基于状态机编程思想的串口接收程序状态编程思想的理论知识可以参考之前写的一篇博客(http://blog.csdn.net/ce123/article/details/8222673),本文介绍一个例子--串口接收.状态机的状态定义如下:typedef enum {IS_NULL 0,IS_START, //已接收到起始符号,准备接收长度…

基于状态机编程思想的串口接收程序

状态编程思想的理论知识可以参考之前写的一篇博客(http://blog.csdn.net/ce123/article/details/8222673),本文介绍一个例子--串口接收.状态机的状态定义如下:

typedef enum
{IS_NULL = 0,IS_START,		//已接收到起始符号,准备接收长度IS_LEN,			//已经接收到长度,准备接收数据IS_DATA,		//已经接收到长度,准备或正在接收数据IS_CHECK		//已经接收到数据,准备计算校验和
}st_InState;
其他的定义如下:

#define CHAR_STX 0xAA
#define INFRAME_MAXLEN 40typedef struct tagINPARSE
{u8	uInState;					//接收状态,初始化为IS_NULLu16 tInState;					//接收状态计时u8 uTotal;						//需要接收数据的总长度u8 uLen;						//实际已经接收到的长度u8	uframe_a[INFRAME_MAXLEN];	//接收到的数据帧 void* vpUserData;
}t_INPARSE;
接下来是程序的主要部分,也就是状态的转换过程.

/*******************************************************************************
* Function Name  : FinishInScan
* Description    : Finish Receive char
* Input          : The pointer of t_INPARSE
* Output         : None
* Return         : None
*******************************************************************************/
void FinishInScan(t_INPARSE *pPtc)
{pPtc->uInState = IS_NULL;pPtc->uTotal = 0;pPtc->tInState = 0;
}/*******************************************************************************
* Function Name  : InChecksum
* Description    : Calculate the checksum
* Input          : The pointer of t_INPARSE
* Output         : None
* Return         : The checksum
*******************************************************************************/
u8 InChecksum(t_INPARSE *pPtc)
{u8 uCheck;u16 i;u8* ptr;//uCheck = CHAR_STX ^ HIBYTE(pPtc->uTotal) ^ LOBYTE(pPtc->uTotal);uCheck = CHAR_STX ^ pPtc->uTotal;ptr = (u8*)(pPtc->uframe_a);for (i = pPtc->uTotal; i ; --i,++ptr)uCheck ^= *ptr;return uCheck;
}/*******************************************************************************
* Function Name  : OnRevChar
* Description    : Protocol analysis of the character stream
* Input          : The pointer of t_INPARSE, Character data from COMx, User data
* Output         : None
* Return         : Ptc_R_
*******************************************************************************/
u8 OnRevChar(t_INPARSE *pPtc,u8 ch,void *vpUserData)
{switch (pPtc->uInState){case IS_NULL:if (ch == 0xaa){pPtc->uInState = IS_START;//pPtc->tInState =return Ptc_R_CONTINUE;}else{printf("Hand error,0x%x\n",ch);return Ptc_R_FALSE;}case IS_START:  //已经接收到起始字符,准备接收长度if ((ch <=INFRAME_MAXLEN) && (ch >= 1) ){pPtc->uTotal = ch;pPtc->uLen = 0;pPtc->uInState = IS_DATA;return Ptc_R_CONTINUE;}else{printf("Hand error,0x%x\n",ch);return Ptc_R_FALSE;}case IS_DATA:pPtc->uframe_a[pPtc->uLen++] = ch;if (pPtc->uLen == pPtc->uTotal){pPtc->uframe_a[pPtc->uLen] = 0;//添加一个串结束符pPtc->uInState = IS_CHECK;}return Ptc_R_CONTINUE;default:u8 uCheck = InChecksum(pPtc);if (uCheck == ch){return Ptc_R_FRAME;}else{printf("Handset Frame CheckReeor.Rev = 0x%x,Calc = 0x%x\n",ch,uCheck);return Ptc_R_FALSE;}break;}
}/*******************************************************************************
* Function Name  : Rev_PutChar
* Description    : Character process
* Input          : The pointer of t_INPARSE, Character data from COMx, User data
* Output         : None
* Return         : Ptc_R_
*******************************************************************************/
u8 Rev_PutChar(t_INPARSE *pPtc,u8 ch,void *vpUserData)
{u8 rtn = OnRevChar(pPtc,ch,vpUserData);if (rtn == Ptc_R_CONTINUE){return Ptc_R_FALSE;}else if (rtn == Ptc_R_FALSE){FinishInScan(pPtc);return rtn;}else{FinishInScan(pPtc);return Ptc_R_FRAME;}
}
http://www.lbrq.cn/news/1084951.html

相关文章:

  • 什么网站上做效果图可以赚钱/注册公司流程和费用
  • 徐州哪家公司做网站水平好/搜索引擎优化seo论文
  • 网站备案管理系统登录不上去/兰蔻搜索引擎营销案例
  • 已有网站做移动网站/搜索引擎论文3000字
  • 长沙建站位找有为太极广大/全国疫情最新消息
  • 网站建设是基础服务吗/沈阳seo优化
  • 做网站公司南京/做引流推广的平台600
  • 上海进博会?/沈阳沈河seo网站排名优化
  • 特色直播/seo技术自学
  • 自己做的网站只能打开一个链接/如何做好营销推广
  • 盘锦公司做网站/知识付费网站搭建
  • 深圳企业网站建设费用/seo顾问什么职位
  • 常州 网站优化/廊坊网站排名优化公司哪家好
  • 做网站收会员费违法吗/泰安网站seo
  • 站长之家网站建设制作/做网站公司
  • python做网站多少钱/磁力链搜索引擎入口
  • 品牌营销型网站建设/深圳推广
  • 二级域名iis建立网站/建站平台哪家好
  • 怎么做宣传网页/搜索引擎优化核心
  • 快速建站学什么/郑州百度推广公司地址
  • 学校网站模板html/软文发布平台排名
  • 大流量ip网站怎么做/深圳优化怎么做搜索
  • 佛山网站建设维护/电子邮件营销
  • 设计资源网站大推荐/seo推广平台
  • 怎样改网站英文域名/流量神器
  • 婚纱网站建设规划书/百度一下你就知道下
  • 公司做自己的网站平台台/大连网站建设费用
  • 学做网站论坛vip视频/百度打广告多少钱一个月
  • 门户网站创建/推广方法
  • 中国建设监督网站/百度入口的链接
  • C++11之lambda及包装器
  • C++---初始化列表(initializer_list)
  • ESP32学习-按键中断
  • 2025.7.27总结—新励成
  • 20250727让飞凌OK3576-C开发板在Rockchip的原厂Android14下通过耳机播音
  • Java 大视界 -- Java 大数据机器学习模型在电商客户细分与精准营销活动策划中的应用(367)