- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
4修正万年历时间
一正确判断协议的开始发送端向接收端发送数据时,接收端处于被动地位,数据的到来是随机而不可预知的。如果发送端连续不断的发送各种数据,如何从这个庞大的数据流中解析出每条数据,将使我们首先要解决的问题。
命令解释协议头命令号命令长度命令体校验和读取时间5AH01H00H无累加和读取时间回复02H07H年月日时分秒星期设置时间03H07H年月日时分秒星期设置时间回复04H07H年月日时分秒星期表7-5十六进制协议
(1)一共指定了4条协议,并有各自的唯一命令编号,分别为:读取时间(01H)、读取时间回复(02H)、设置时间(03H)、设置时间回复(04H)。(2)协议头采用5AH,这是因为5AH译成二进制,0、1出现的概论一样的,可以在一定程度上增强抗干扰能力。(3)命令长度实际上是命令体的长度,不包含校验和。(4)校验和我们采用累加和的形式予以实现,具体计算方法是从协议头开始连续加到命令体的最后一个字节。增加校验和是为了判断接收到数据的正确性,接收端接收到数据后,会重新计算校验和,如果,计算的校验和与发送端传递过来的校验和相同,则说明传递的数据正确,否则说明在传输时数据发生了变化,这条协议应该抛弃。
二在中断函数中实现UART数据的接收(1)我们在上一个例程的基础上,完成本例程的程序设计,复制例程7.18,并打开工程。(2)定义全局数组u8g_UartReceivedData[20]用于UART接收到的数据,这里将数组的大小定义为20,则最大接收到的数据长度不应超过20。(3)定义全局变量u8g_UartIsReceived用于标识是否接收到完整的数据,当UART0中断服务处理函数完成了整条协议数据的接收,则将此变量定义为TRUE,用户逻辑始终检测此变量,当检测到它的数据为TRUE时,就可以进行协议的解析工作了。完整的全局变量定义,如程序7-19所示。【程序7-19】//定义全局变量uint8u8g_DisplayString[8];uint8u8g_DisplayPoint[8]={0,0,0,1,0,1,0,1};uint8u8g_UartReceivedData[20]; //存储UART接收到的数据uint8u8g_UartIsReceived=FALSE; //表示UART中的数据是否接收完毕uint8u8g_Is1000ms=FALSE; //标识1000ms到
(4)接下来,我们看完整的UART0中断服务处理函数中的程序,如程序7-20所示。【程序7-20】#ifINTERNAL_PERIPHERAL_UART0_MODE!=0ISR(USART__RX_vect){ uint8u8_UartData,u8_CheckOutSum,i; staticuint8u8_IsRecevied=FALSE,u8_Number=0; u8_UartData=UDR0; if(u8_UartData==0x5a) { u8_IsRecevied=TRUE; u8_Number=0; } if(u8_IsRecevied==TRUE) { u8g_UartReceivedData[u8_Number]=u8_UartData; if((u8_Number2)(u8_Number==(3+u8g_UartReceivedData[2]))) { //表明已收到数据流的最后一个字节
//计算校验和 u8_CheckOutSum=0; for(i=0;iu8_Number;i++) { u8_CheckOutSum=u8_CheckOutSum+u8g_UartReceivedData[i]; } if(u8_CheckOutSum==u8g_UartReceivedData[u8_Number]) { //校验和正确 u8g_UartIsReceived=TRUE; //标识数据接收完毕 } u8_IsRecevied=FALSE; u8_Number=0; } else { u8_Number++; } } if(u8_Number=20) { //接收数据超长处理 u8_IsRecevied=FALSE; u8_Number=0; }#ifPROTOCOL_MINIUART_UART0_MODE!=0 miniUART_UartInterrupt(miniUART_UART0,u8_UartDa
您可能关注的文档
- 单片机技术及应用项目教程 课件 项目5-1认知轻触机械式触点开关.ppt
- 单片机技术及应用项目教程 课件 项目5-2独立式按键设计.ppt
- 单片机技术及应用项目教程 课件 项目6-3使用C语言模拟IIC总线.ppt
- 单片机技术及应用项目教程 课件 项目7-2认知通用异步串行总线.ppt
- 单片机技术及应用项目教程 课件 项目8-4设计具有实时时间显示的温度测量报警系统.ppt
- 单片机技术及应用项目教程 课件 项目四--知识点(总).ppt
- 单片机技术及应用项目教程 课件 项目一--知识点(简介).ppt
- 单片机技术及应用项目教程 课件 知识点1- 认知智能电子产品的构成.ppt
- 单片机技术及应用项目教程 课件 知识点1-初步认识LED.ppt
- 单片机技术及应用项目教程 课件 知识点1-单片机最小系统.ppt
- 市直机关工委及个人述职述廉2024年党建工作情况报告材料.docx
- 区委书记在2025年一季度经济运行部署会议上的讲话发言材料.docx
- 市直机关单位、卫健委党支部2024年工作述职报告材料.docx
- 市委副书记、市长在2025年市委城乡规划委员会第一次会议上的讲话发言材料.docx
- 某单位领导干部2024年生活会、组织生活会对照检查材料(对照“四个带头”).docx
- 2024年民政局、宣传部、教育局基层主要领导个人述责述廉报告材料.docx
- 2025年2月党支部“三会一课”参考主题方案.docx
- 在某中学2025年春季开学典礼上的讲话:以“三重境界”燃动新学期.docx
- 2024年度领导干部专题民主生活会、组织生活会对照检查材料(四个带头)及学习研讨会上的发言材料.docx
- 市纪委市监委2025年度纪检监察工作计划.docx
最近下载
- 科学五年级下册昼夜交替现象.ppt VIP
- 某石油公司领导带头增强党性、严守纪律、砥砺作风方面等“四个带头”对照研讨发言稿.docx VIP
- UI设计创意表达与实践(肖文婷)配套课件教学课件1-2 初始UI设计行业.ppt VIP
- 全国中学生天文知识竞赛试题(附答案).pdf VIP
- 部编人教版之五年级语文下册全套课课练(附答案).pdf
- 2022年追梦大课堂四年级上册语文答案。.pdf
- 2021届高考英语887核心词(打印、词频、出处、例句、背诵).docx
- 机械加工工艺过程卡片4.doc VIP
- 县级土地整治规划.pptx VIP
- 小学五年级科学下册教学课件-《昼夜交替现象》.pptx VIP
文档评论(0)