pc串口和单片机通讯的问题

lidingzhao 2009-04-16 03:47:36
在单片机和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
...全文
84 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lidingzhao 2009-04-19
  • 打赏
  • 举报
回复
的确是波特率的问题,用的信号发生器之后,又适当调整了波特率,
总算解决了问题,
感谢大家的指导
小赌移情 2009-04-17
  • 打赏
  • 举报
回复
另外 有的單片機是接osc1 有的是osc2 你看看文檔.
小赌移情 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lidingzhao 的回复:]
看来还是应该用一个晶振来提供系统时钟,
不过现在晶振还没有买回来,但是实验室里有一台信号发生器,可以产生4M的方波,

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

[/Quote]

可以 但是先要把幅度調好 免得把單片機燒了
cbzfy6188 2009-04-16
  • 打赏
  • 举报
回复
时钟很重要的,要是时钟不对,肯定收不到。
博说医械研发 2009-04-16
  • 打赏
  • 举报
回复
有个误码率允许范围吧
凤朝凰 2009-04-16
  • 打赏
  • 举报
回复
为什么不用晶振做时钟?RC的频率不准确,好像也不稳定吧。
zyzhang365 2009-04-16
  • 打赏
  • 举报
回复
串口对时钟的精度肯定是有要求的,看看串口工作的原理就清楚了。
当然如果实测的时钟稳定,可以考虑按实测的频率来计算串口寄存器值试试。
lidingzhao 2009-04-16
  • 打赏
  • 举报
回复
看来还是应该用一个晶振来提供系统时钟,
不过现在晶振还没有买回来,但是实验室里有一台信号发生器,可以产生4M的方波,

能不能将信号发生器的输出信号一脚接osc1,一脚接地来暂时代替晶振进行测量
小赌移情 2009-04-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 lidingzhao 的帖子:]
在单片机和pc上设置的都是9600波特率,无奇偶校验,8位数据位,1位停止位
我用的是RC来产生单片机所需的时钟,理论上想设计4MHz的,但在时钟输入端实测是5.05M
单片机的波特率是由公式 ((FCY/9600)/16)-1 来算的,FCY是指令时钟频率,我设成5.05M对应的1262626和4M对应的1000000时,出不了正确结果,设成1600000时,有时出正确结果,有时结果又不对,但是错误的结果又固定为那1到2种特定值,这种情况是由于波特率的设置有问题造…
[/Quote]

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

另: 一般要用串口的話, 是不用RC來作頻率源的, 就算你這台機子通過示波器校準了 到了生產那一天你就會後悔了.
有便宜一點的陶瓷晶體可供考慮.
zhujinqiang 2009-04-16
  • 打赏
  • 举报
回复
时钟不准吧!

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧