专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
PIC单片机
PIC16f73与上位机进行异步通讯问题
2020-02-09 09:30
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
12747
6
6
我在学习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接反了:)
加载中...
一周热门
更多
>
相关问题
PIC单片机不同的IO口驱动74HC573驱动共阴极的数码管,有的段不亮
1 个回答
一种简单精确的pic延时方法
21 个回答
谁熟悉PIC的产品发布时间的,帮看看PIC18F47K40啥版本IDE能开发
12 个回答
求AN1078对应的源代码下载地址
5 个回答
PIC单片机应用技巧
4 个回答
串口无法连续接收数据
2 个回答
求助:dsPIC33F串口通信,如何发送字符串
4 个回答
PIC45K40 IOC(interrupt-on-change)功能
2 个回答
相关文章
一种用PIC单片机主时钟驱动的老式挂钟
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
PIC单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
我想知道,波特率是不是,可以设得不一样吧!? 比喻上位机为9600,下位机为38400。这样应该是可以的吧!?
还有就是,如果可以设得不一样,那么上位机与下位机,哪边的波特率大些好?
异步通讯应该指的是发送和接受不同时进行,而不是速率不一致吧。
软件编写上主要还是抗干扰和纠错问题。数据接收错误的处理机制,数据校验等。
如果是玩玩的话就自己顶个通讯协议,否则就找成熟现成的。
-----------------------------------------------------------------------
(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接反了:)
一周热门 更多>