2882|10

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

pc串口和单片机通讯的问题 [复制链接]

在单片机和pc上设置的都是9600波特率,无奇偶校验,8位数据位,1位停止位
我用的是RC来产生单片机所需的时钟,理论上想设计4MHz的,但在时钟输入端实测是5.05M
单片机的波特率是由公式 ((FCY/9600)/16)-1 来算的,FCY是指令时钟频率,我设成5.05M对应的1262626和4M对应的1000000时,出不了正确结果,设成1600000时,有时出正确结果,有时结果又不对,但是错误的结果又固定为那1到2种特定值,这种情况是由于波特率的设置有问题造成的吗?
这是pc部分接收数据的程序:
Private Static Sub MSComm1_OnComm()
    Dim Buffer As String
    Dim sData() As Byte
    Dim i As Integer
    Select Case MSComm1.CommEvent
        Case comEvReceive
            Buffer = MSComm1.Input
            sData() = Buffer
            For i = 0 To UBound(sData)
            If Len(Hex(sData(i))) = 1 Then
            strdata = strdata & "0" & Hex(sData(i)) & " "
            Else
            strdata = strdata & Hex(sData(i)) & " "
            End If
            Next i
            txtTerm.Text = strdata
    End Select
End Sub

最新回复

的确是波特率的问题,用的信号发生器之后,又适当调整了波特率, 总算解决了问题, 感谢大家的指导  详情 回复 发表于 2009-4-19 21:39
点赞 关注

回复
举报

2

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
串口对时钟的精度肯定是有要求的,看看串口工作的原理就清楚了。
当然如果实测的时钟稳定,可以考虑按实测的频率来计算串口寄存器值试试。
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
为什么不用晶振做时钟?RC的频率不准确,好像也不稳定吧。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

4
 
有个误码率允许范围吧
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
时钟很重要的,要是时钟不对,肯定收不到。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

6
 
时钟不准吧!
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

7
 
引用楼主 lidingzhao 的帖子:
在单片机和pc上设置的都是9600波特率,无奇偶校验,8位数据位,1位停止位
我用的是RC来产生单片机所需的时钟,理论上想设计4MHz的,但在时钟输入端实测是5.05M
单片机的波特率是由公式 ((FCY/9600)/16)-1 来算的,FCY是指令时钟频率,我设成5.05M对应的1262626和4M对应的1000000时,出不了正确结果,设成1600000时,有时出正确结果,有时结果又不对,但是错误的结果又固定为那1到2种特定值,这种情况是由于波特率的设置有问题造…


這種原因十有八九是波特率不對應的原因, 建議發送0x55 或是 0xaa 再用示波器看看波形的準確頻率.

另: 一般要用串口的話, 是不用RC來作頻率源的, 就算你這台機子通過示波器校準了 到了生產那一天你就會後悔了.
有便宜一點的陶瓷晶體可供考慮.
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
看来还是应该用一个晶振来提供系统时钟,
不过现在晶振还没有买回来,但是实验室里有一台信号发生器,可以产生4M的方波,

能不能将信号发生器的输出信号一脚接osc1,一脚接地来暂时代替晶振进行测量
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 lidingzhao 的回复:
看来还是应该用一个晶振来提供系统时钟,
不过现在晶振还没有买回来,但是实验室里有一台信号发生器,可以产生4M的方波,

能不能将信号发生器的输出信号一脚接osc1,一脚接地来暂时代替晶振进行测量



可以 但是先要把幅度調好 免得把單片機燒了
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 
另外 有的單片機是接osc1 有的是osc2 你看看文檔.
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

11
 
的确是波特率的问题,用的信号发生器之后,又适当调整了波特率,
总算解决了问题,
感谢大家的指导
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表