注册 登录
电子技术论坛 返回首页

1058459755的个人空间https://bbs.elecfans.com/?312711[收藏][复制][分享][RSS]

博客

关于串口的一点问题

热度8已有 680 次阅读2013-2-19 08:12

古人云“一年之计在于春”,挺好的,不过不敢有什么所谓的计划了。
当自己懂得稍微多点的时候,却发现不懂得还是那么的多得多。知识只有去应用才会体现应有的价值!有的时候,不得不敲键盘写下自己的一点感悟,这个时候也发现自己的遗忘也越来越厉害,逝者如斯,稍纵即逝啊!
我记录着别人不屑于记录的东西,书写着太简单别人都知道的知识。只是希望当我忘记的时候可以再温故!
错误点:MAX232MAX422 MAX485都是转换芯片
TTL电平方式转换为RS232通信协议,需要MAX232
RS232转换为RS422,需要MAX422
RS232转换为RS485,需要MAX485

RS开头的都是技术标准,RS232RS485RS422 3种串口通信技术标准

长进:1、MAX232电平转换芯片是使单片机和pc串口的电平一致,这是通信的必要条件
2、设置SCON、PCON、TCON等寄存器都是在单片机编程时设置的单片机串行通信参数
3、单片机和上位机程序必须设置一样的波特率
4、串口通信协议需要自己要制定的,使得通信双方能够使接收方识别收到的数据是什么意思,发送方也能在明确目的的前提下发出正确的数据。串口通信是以数据包或称为数据帧为单位传送的,那么我们在制定通信协议的时候,其实就是在指定一个数据包的位数以及每个位或部分位所代表的信息。比如一个数据包AA 02 TT 02 32 58 78 DD(16进制ASCII码)由单片机传到了上位机PC,那么PC就要根据我们自己预先制定的通信协议来识别它,比如可以这么指定AA表示起始位,02表示第二个下位机传上来的数据,TT表示传上来的是温度, 02 32 48 78是温度数据,DD是停止符,表示数据包传送完毕 等待下一帧数据传送。
但是如果想写个上位机软件,用VB或者VC,也不是很难,不过需要注意的是用哪个软件无所谓,需要把协议写好,Active X的灵活性,应用VC++开发串行通信目前通常有如下几种方法:一是利用Windows API通信函数;二是利用VC的标准通信函数inp、inpw、inpd、outp、outpw、outpd等直接对串口进行操作;三是使用Microsoft Visual C++的通信控件(MSComm);四是利用第三方编写的通信类。我采用的是第三者!以上几种方法中第一种使用面较广,但由于比较复杂,专业化程度较高,使用较困难;第二种需要了解硬件电路结构原理;第三种方法看来较简单,只需要对串口进行简单配置,但是由于使用令人费解的VARIANT 类,使用也不是很容易;第四种方法是利用一种用于串行通信的CSerial类(这种类是由第三方提供),只要理解这种类的几个成员函数,就能方便的使用。
值得注意的是:买来的开发板,要想用串口进行下载,必须要对板子进行上电(和USB下载一个样,需要冷启动,不管PCB是自己设计的还是别人的都要把原理记住领悟了在进行操作,比如哪个跳线帽该短接哪个拨码开关需要拨码等等),所有的通信电路可以用表测一下,以免下载不成功还以为是下载线的问题。FPGA的板子就是因为买了一个二手线而郁闷了很久很久······(不过纠结的时候很兴奋,因为那句话真的说得很好---成功是100次跌倒之后又爬了起来!)
还有就是:如果郁闷了,就去看电影,消遣一下,然后再去攻坚,这个法子屡试不爽!
活着的信念、耐得住寂寞和坚守自己的执着都不容易…···只有((···)),才能淬炼自己独当一面的精彩!!!
返回顶部