PIC16f73与上位机进行异步通讯问题

2020-02-09 09:30发布

我在学习PIC单片机与PC机异通讯时,想用到,电脑串口4脚和6脚,处理数据流。但不知道怎么样实现起来更好!请问在软件编写或硬件方面应该注意哪些
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
qqrenzhi
1楼-- · 2020-02-09 11:03
导步通讯时,上位机与下位机通讯时,设为,1个起启位,8个数据位,1个停止位。无奇偶校验。
我想知道,波特率是不是,可以设得不一样吧!?   比喻上位机为9600,下位机为38400。这样应该是可以的吧!?
还有就是,如果可以设得不一样,那么上位机与下位机,哪边的波特率大些好?
liansh
2楼-- · 2020-02-09 14:17
PC机编程语言基本上都有串口库,看看说明调用就好。
异步通讯应该指的是发送和接受不同时进行,而不是速率不一致吧。
软件编写上主要还是抗干扰和纠错问题。数据接收错误的处理机制,数据校验等。
如果是玩玩的话就自己顶个通讯协议,否则就找成熟现成的。
qqrenzhi
3楼-- · 2020-02-09 18:34
异步通讯是不同时进行,但是上位与下位机都有速率的啊!我就是说,速率的设置,有没有什么讲究或要求·!
liansh
4楼-- · 2020-02-09 20:13
 精彩回答 2  元偷偷看……
crazy_st0ne
5楼-- · 2020-02-09 23:13
回复【楼主位】qqrenzhi
-----------------------------------------------------------------------
(1)电平方面,RS232 使用DB9 的2脚作为数据接收RX,3脚作为数据发送TX,根据标准的不同,使用+3(0)~+15V,-3(0)~-15V电平作为逻辑0/1。单片机的UART口为TTL电平,使用0V, 5V作为逻辑0/1。在单片机和上位机进行通讯时,需要使用MAX232作电平的转换。
(2)时序方面,PIC16F可以通过寄存器值直接控制波特率,因此理论上可以设置任意波特率,但上位机根据使用的操作系统软件支持或硬件通讯芯片支持的原因,往往只支持规定的波特率(可以在COM的硬件属性中看到所有支持的标准波特率),当然也有支持任意波特率的串口芯片。因此,如果无特殊需求,最好使用标准波特率,波特率的计算,datasheet中有详细的解释。
(3)上位机串口支持芯片从550升级到950后,RS232所支持的波特率也升级到960kbps,因此在进行高速的通讯时,需要注意晶振频率是否能够满足。(这个需要计算,如果没有记错,16F最高支持20M晶振),波特率越高,由于EMC、时钟分频方面的原因,通讯的误码率会上升,最好使用协议,校验通讯。
(4)最后,在硬件设计是,头脑清醒,不要把RX和TX接反了:)

一周热门 更多>