



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
串口通信: 软件调试,在调试过程中需要使用虚拟串口助手。在编程中注意设计时钟和波特率。注意 程序的串口设置和串口调试助手中串口设置相同。 单串口: mode com2 9600,0,8,1 assign com2 sout stime = 0 多串口: mode com2 9600,0,8,1 assign com2 s0out 0 表示单片机的串口 0 编程: STC12 介绍的方法: 接收一个字节的函数和发送字符串的函数,发送字符串需要知道字符串的长度。对于接收 字符串的函数,可以仿照通过调用接收一个字节的函数,写出接收字符串函数。 void WriteUart(uchar *pucData ,uchar ucLength) if(ucLength = 0) return; if(UartBuzy = 1) return; ucSendLength = ucLength; pucSendData = pucData; SBUF = *pucSendData; UartBuzy = 1; ucSendedCount = 0; uchar ReadUart(void) uchar Data; Data = ucRecData; ucRecData = 0; return Data; Unsigned char RString(unsigned char *s, unsigned int len) Unsigned int i; For(i =0;i= ucSendLength) UartBuzy = 0; return; else SBUF = *(pucSendData + ucSendedCount); STC15: STC15 只给出了发送函数,且发送函数有瑕疵,具体见最后分析。 void UART1_ISR(void) interrupt 4 using 1 if (RI) /接收数据 RI = 0; /清除 RI 位 if (TI) /发送数据 TI = 0; /清除 TI 位 busy = 0; /清忙标志 void SendData(unsigned char dat) while (busy); /等待前面的数据发送完成 busy = 1; SBUF = dat; /写数据到 UART 数据寄存器 void SendString(char *s) while(*s) /检测字符串结束标志 SendData(*s+); /发送当前字符 SendString()字符串函数,当遇到发送的字符串里面有 0x00 就会终止,实用性不强。 SendData()函数中三条语句的顺序容易引起死机。 比较好的处理串口接收一个字节数据的方法,不采用中断处理标志位。通过关中断,然后 处理串口接收标志,从而减少在处理过程中因为触发中断而造成的死循环。修改好的串口 接收一个字节的代码(这是采用的串口 2 接收一个字节数据的处理函数,其控制寄存器不 支持位操作)如下: void SendData(BYTE dat) EA = 0; S2BUF = dat; /SBUF=dat while (!(S2CON /等待前面的数据发送完成 while(TI) ; S2CON /TI = 0; EA = 1; Unsigned char SendString(unsigned char *s, unsigned int len) Unsigned int i; For(i =0;ilen ;i+) SendData(*s+); 一个比较好的接收处理框架(利用通信协议): void UART1_ISR(void) interrupt 4 using 1 unsigned char sbuffer; if(RI) RI = 0; sbuffer = SBUF; if(nflag = 0) REC_MAX = REC_MAX_NAME ; else REC_MAX = REC_MAX_DATA; if(sbuffer = CHECK_HEAD) Rec_Len = 0; uarttext0 = sbuffer; / 这里保留了包头 else if(Rec_Flag) / 开始接收 if(Rec_Len (REC_MAX - 1) Rec_Len+; uarttextRec_Len = sbuffer; / 当数据送缓冲区 else if(Rec_Len = (REC_MAX - 1) / 接收完成 /* if(uarttextRe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西来宾市忻城县政府投资审计中心招聘见习生2人模拟试卷及完整答案详解1套
- 2025湖南岳阳市平江县事业单位第一批公开选调工作人员考前自测高频考点模拟试题及一套答案详解
- 2025年上半年四川绵阳市游仙区考核招聘教师31人考前自测高频考点模拟试题及1套参考答案详解
- 2025河南商丘市民权县消防救援大队招聘政府专职消防员32人模拟试卷及参考答案详解1套
- 2025海南白沙黎族自治县机关事务服务中心招聘公益性岗位人员2人考前自测高频考点模拟试题附答案详解
- 2025年阜阳颍上县人民医院引进博士研究生2人考前自测高频考点模拟试题附答案详解(完整版)
- 2025年轧钢导卫装置项目合作计划书
- 2025广东中共中山市委政法委员会所属事业单位招聘事业单位人员4人模拟试卷及完整答案详解一套
- 2025内蒙古鄂尔多斯生态环境职业学院人才引进38人考前自测高频考点模拟试题带答案详解
- 2025年福建省龙岩市武平县乡村人才振兴招聘10人模拟试卷及参考答案详解
- 高中化学-金属钠的性质及应用教学设计学情分析教材分析课后反思
- 工程量清单及招标控制价编制方案
- 04S519小型排水构筑物(含隔油池)图集
- 工程施工人员安全教育培训【共55张课件】
- 双碱法脱硫操作专项规程
- 人教版七年级上学期英语第一次月考试卷(含答案解析)
- 仿生机器鱼行业规模分析
- 胸闷病人的护理查房
- β内酰胺类抗菌药物皮肤试验指导原则(2021版)
- 北京猿人头盖骨失踪之谜
- 华中科技大学教学课件-工程传热学1王晓墨
评论
0/150
提交评论