游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

C开发串口通信实例及串口基础

  一、串口通信简介
  串行接口(串口)是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。
  串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。
  1。波特率:这是一个衡量符号传输速率的参数。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送960个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为960Bd,比特率为10位960个秒9600bps。
  2。数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包时,实际的数据往往不会是8位的,标准的值是6、7和8位。标准的ASCII码是0127(7位),扩展的ASCII码是0255(8位)。
  3。停止位:用于表示单个包的最后几位。典型的值为1,1。5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。
  4。校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。二、C串口编程类
  从。NETFramework2。0开始,C提供了SerialPort类用于实现串口控制。命名空间:System。IO。Ports。其中详细成员介绍参看MSDN文档。下面介绍其常用的字段、方法和事件。1。常用字段:
  名称
  说明
  PortName
  获取或设置通信端口
  BaudRate
  获取或设置串行波特率
  DataBits
  获取或设置每个字节的标准数据位长度
  Parity
  获取或设置奇偶校验检查协议
  StopBits
  获取或设置每个字节的标准停止位数2。常用方法:
  名称
  说明
  Close
  关闭端口连接,将IsOpen属性设置为false,并释放内部Stream对象
  GetPortNames
  获取当前计算机的串行端口名称数组
  Open
  打开一个新的串行端口连接
  Read
  从SerialPort输入缓冲区中读取
  Write
  将数据写入串行端口输出缓冲区3。常用事件:
  名称
  说明
  DataReceived
  表示将处理SerialPort对象的数据接收事件的方法三、C开发串口实例
  前台页面:
  后台代码:
  usingSystem;usingSystem。IO。Ports;usingSystem。Text;usingSystem。Windows。Forms;namespaceSerialPort{publicpartialclassSerialPort:Form{StringserialPortName;publicSerialPort(){InitializeComponent();}privatevoidForm1Load(objectsender,EventArgse){string〔〕portsSystem。IO。Ports。SerialPort。GetPortNames();获取电脑上可用串口号comboBox1。Items。AddRange(ports);给comboBox1添加数据comboBox1。SelectedIndexcomboBox1。Items。Count0?0:1;如果里面有数据,显示第0个comboBox2。Text115200;默认波特率:115200comboBox3。Text1;默认停止位:1comboBox4。Text8;默认数据位:8comboBox5。Text无;默认奇偶校验位:无}privatevoidbutton1Click(objectsender,EventArgse){if(button1。Text打开串口){如果按钮显示的是打开try{防止意外错误serialPort1。PortNamecomboBox1。Text;获取comboBox1要打开的串口号serialPortNamecomboBox1。Text;serialPort1。BaudRateint。Parse(comboBox2。Text);获取comboBox2选择的波特率serialPort1。DataBitsint。Parse(comboBox4。Text);设置数据位设置停止位if(comboBox3。Text1){serialPort1。StopBitsStopBits。One;}elseif(comboBox3。Text1。5){serialPort1。StopBitsStopBits。OnePointFive;}elseif(comboBox3。Text2){serialPort1。StopBitsStopBits。Two;}设置奇偶校验if(comboBox5。Text无){serialPort1。ParityParity。None;}elseif(comboBox5。Text奇校验){serialPort1。ParityParity。Odd;}elseif(comboBox5。Text偶校验){serialPort1。ParityParity。Even;}serialPort1。Open();打开串口button1。Text关闭串口;按钮显示关闭串口}catch(Exceptionerr){MessageBox。Show(打开失败err。ToString(),提示!);对话框显示打开失败}}else{要关闭串口try{防止意外错误serialPort1。Close();关闭串口}catch(Exception){}button1。Text打开串口;按钮显示打开}}protectedoverridevoidWndProc(refMessagem){if(m。Msg0x0219){设备改变if(m。WParam。ToInt32()0x8004){usb串口拔出string〔〕portsSystem。IO。Ports。SerialPort。GetPortNames();重新获取串口comboBox1。Items。Clear();清除comboBox里面的数据comboBox1。Items。AddRange(ports);给comboBox1添加数据if(button1。Text关闭串口){用户打开过串口if(!serialPort1。IsOpen){用户打开的串口被关闭:说明热插拔是用户打开的串口button1。Text打开串口;serialPort1。Dispose();释放掉原先的串口资源comboBox1。SelectedIndexcomboBox1。Items。Count0?0:1;显示获取的第一个串口号}else{comboBox1。TextserialPortName;显示用户打开的那个串口号}}else{用户没有打开过串口comboBox1。SelectedIndexcomboBox1。Items。Count0?0:1;显示获取的第一个串口号}}elseif(m。WParam。ToInt32()0x8000){usb串口连接上string〔〕portsSystem。IO。Ports。SerialPort。GetPortNames();重新获取串口comboBox1。Items。Clear();comboBox1。Items。AddRange(ports);if(button1。Text关闭串口){用户打开过一个串口comboBox1。TextserialPortName;显示用户打开的那个串口号}else{comboBox1。SelectedIndexcomboBox1。Items。Count0?0:1;显示获取的第一个串口号}}}base。WndProc(refm);}privatevoidserialPort1DataReceived(objectsender,SerialDataReceivedEventArgse){intlenserialPort1。BytesToRead;获取可以读取的字节数byte〔〕buffnewbyte〔len〕;创建缓存数据数组serialPort1。Read(buff,0,len);把数据读取到buff数组Invoke((newAction((){C3。0以后代替委托的新方法textBox1。AppendText(Encoding。Default。GetString(buff));对话框追加显示数据})));}privatevoidbutton2Click(objectsender,EventArgse){textBox1。Clear();清除接收对话框显示的数据}privatevoidbutton3Click(objectsender,EventArgse){StringStrtextBox2。Text。ToString();获取发送文本框里面的数据try{if(Str。Length0){serialPort1。Write(Str);串口发送数据}}catch(Exception){}}privatevoidbutton4Click(objectsender,EventArgse){textBox2。Clear();清除发送文本框里面的内容}}}

成为人们通勤居家运动等场景中的陪伴者音频产品,让生活更悦耳(一期富有文化深度的播客、一部听众喜好的有声书、一档制作精良的广播剧形式、内容不断拓展的在线音频产品正逐渐走入用户的耳朵,成为用户在通勤、居家、运动等场景中的陪伴者。满足听……得了急性肠胃炎别着急吃药,三个方法帮你缓解很多人都受肠胃炎的困扰,经常会出现肚子疼、肚子胀、拉肚子的情况,会感觉非常难受。肠胃炎临床上比较常见的是急性肠胃炎,往往是在进食不洁饮食,进食不当或者过于寒凉等食物以后发……五大纬度精准获客,未来移动联通电信三个巨头将会联合起来吗运营商大数据:五大纬度精准获客,未来移动、联通、电信三个巨头将会联合起来吗?运营商大数据是宝藏,有待开发,其实运营商掌握了相当强大的综合数据资源,这个是没有任何争议的,无……张天爱两次遇人不淑,一次是李子峰,一次是徐开骋,真的要擦亮眼张天爱今年凭借《乘风破浪的姐姐》第三季成功翻红,热度回升的比较大。在资源各方面也变得好起来,频繁亮相各大活动,影视邀约也变多,商务代言也纷至沓来。就在事业得意的时候,感情……活着,就算是生命最后的尊严活着,也许就是生命最后的尊严。《活着》余华这本书讲述了在内战、大跃进等社会变革下,主人公徐福贵icon与他的家人屡遭苦难的故事。读书的习惯让自己仿佛已经处在那……baby演技又进步了?新剧伪骨科姐弟恋太甜了,失意流泪镜头引最近由angelababy和赖冠霖主演的新剧《爱情应该有的样子》正在热播,引起了不小的关注。比起以往baby不掀一点水花,只引来吐槽的作品而言,这部剧的成绩还算非常不错了……卡椒又轮休,快船被打爆!一度落后40分,输球仍高居西部第四北京时间1月30日,NBA常规赛继续展开,快船背靠背客场挑战骑士。本场比赛快船方面又进行了大面积的轮休,这也让他们的实力下降一个等级,可结果也是有些出人意料。残阵快船很快就陷入……马鞍山长江不夜城招选商大会隆重举办,成功签约上百户商家9月8日下午,长江不夜城招选商大会在马鞍山采石矶景区主入口广场隆重举办,作为马鞍山重磅打造的首个特色文旅IP项目,现场吸引了数百户商家与媒体共聚一堂,马鞍山市政府副秘书长何俊等……LNG不敌MAD止步16强,Ale泪洒休息室,ICON被同组哈喽大家好,这里是狗子,每天为您带来有趣的游戏资讯,喜欢的记得点个关注在这次S11全球总决赛开始之前,其实狗子我一直都认为,LPL今年的阵容是相当强悍的,1号种子EDG今……Counterpoint苹果2022年拿下全球手机85利润集微网消息据研究机构Counterpoint最新数据显示,虽然2022年全球智能机市场疲软,出货量出现明显衰退,但苹果2022年仍拿下全球智能手机85利润。根据Count……托卡耶夫开启休假模式,今年会去哪里度假呢?据哈总统府新闻处消息,托卡耶夫总统从8月2日开始休假。不过,总统府的声明中未透露托卡耶夫总统的具体度假地。2021年,托卡耶夫总统将休假安排在了7月,在风景优美的布赫塔尔……连环清道夫在血迹遍布的案发现场潜踪隐迹清洁工这个身份想必大家在现实生活中很常见,那具有标志性的服装以及清洁的工具,在普通人看来是人畜无害群体。可如果设想一下,眼前清洁工的真实目的其实是为了清扫死尸留下的血迹以及证物……
10种常见食物,吃完之后能让人心情变好1、香蕉香蕉含有生物碱,可以振奋精神和提高信心。而且香蕉是色胺酸和维生素B6的超级来源,这些都可以帮助大脑制造血清素,减少产生抑郁的情形。2、牛奶纽约的西奈山……在蓝鸟和领动和菲斯塔和思域四款车之间怎么选择?能选这三样的基本是年轻人了,蓝鸟基本可以排出,外观争议非常大,如果选择蓝鸟个人觉得轩逸更好。思域是很好的选择,动力品质和文化沉淀都很可靠,唯一扰人的就是东本的工艺。……云顶之弈毒瘤级无限奶盾冷门套路!完克永恩刺客法师巨魔大家好,我是兔子今天给大家分享一个外服磅单新上榜国服有位粉丝又进行了优化的套路恶心OP程度堪比当年拼多多小法这粉丝在王者局把把烂分2星就能吃分3星……金海湖150万平方米露营地开放了原标题:金海湖150万平方米露营地开放了近日,在平谷区金海湖镇荒野7号营地,第二届金海湖营地文化消费季正式启动。本报记者甘南摄周六,平谷区环金海湖的十余块露营地再次……最伤车的5大陋习,如何巧妙躲过?相信有车的朋友都喜欢和十分爱惜自己的车,看看有哪些行为最伤车频繁点火每次启动发动机打火时间不要超过三秒,第一次启动失败后也不要频繁反复的打火刚打着火就大脚给油……这的确是几十年来实力最强的女篮了中国女蓝进步了很多!国人的骄傲!但两个高中锋还有待提高能力!2022年国际篮联女篮世界杯继续在澳大利亚悉尼进行,小组赛收官之战,中国女篮8155大胜欧洲劲旅比利时队,以4……染发烫发知识染发:发原色深浅不一致对目标色的影响当发原色色度不一致时,就代表发质的受损程度不同。如发质呈多孔性,代表毛鳞片非常松散,因此头发内在的色素颗粒非常容易流失,受损发质内在体……狗尾巴草是个宝,用它来煮水喝,或能帮助解决这4个问题狗尾巴草具有很强的生存能力和适应环境的能力,耐干旱,贫瘠,酸性或碱性土壤都可以生长,狗尾巴草种子适合在温度为1530的环境内发芽,往往借助风,灌溉浇水等方式进行传播,经越冬休眠……三星将搭载两亿像素的新机三星GalaxyS23Ultra三星手机在近期也是有很多的新机爆料,近日就有关于三星GalaxyS23Ultra的消息爆料,这也会是一款商务机,所以定位和定价都是比较高的。在GalaxyNote产品线被……汽车下乡政策各大企业纷纷响应随着国家发改委、工信部等十部门印发的《进一步优化供给推动消费平稳增长促进形成强大国内市场的实施方案(2019年)》(以下简称《方案》)开始执行,其中有六项政策都是与汽车消费相关……央视女神董卿豪门梦破碎,靠山倒塌后该何去何从?央视的主持人各个都是经过精挑细选的,能被人记住的更是凤毛麟角。董卿凭借优雅的气质和出口成章的才华,被人们称为央视女神。她连续几年主持春晚,又在知名综艺里展现满腹才华,是许多人心……宝俊5l0是国几排放标准?感谢邀请:宝骏510是国五排放标准。国五排放标准就是,国家第五阶段汽车污染物排放标准,国五排放标准与欧盟同步,相当于欧盟第五阶段排放标准。如何查证自己车的排放……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网