• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51单片机的串口波特率问题

_落雪千寒灬 2017-09-04 浏览量:916

1.大家都知道一般51单片机与PC通信时一般采用11.0592M的晶振,那么如果用了12M的晶振与PC通信bps为2400时 那么单片机应该TH1=TH0=0xF4;但实际上要TH1=TH0=0xF3;才能正常通信,那么其他高点的bps能不能像这样降低TH1,TH0的值来正常通信?

2.为什么STM32只要用12M晶振就可以直接正常通信了?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 1,可以,但是具体数值要重新计算,而且算出来不一定准。所以建议你还是11.0592M的

    2,STM32的外部晶振可以用8M的也可以用12M的,它内部的锁相环可以设置为分数,然后供给串口,而51的锁相环没那么强大,所以才需要用11.0592这种晶振

    • 发布于 2017-09-05
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 在STM32内部,有个锁相环,可以将12M的外部频率倍频的72M的速度,所以满足了串口的波特率,就可以通讯啦。另外,51单片机虽然使用12M的晶振,但是其内部还要分频,实际工作频率并没有达到12M。
    • 发布于2017-09-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个51是根据串口的波特率算出了的,就是为了适应串口才用的11.0592的晶振,如果是12的话就不能和串口形成倍数关系,波特率高了出错率就很大了,stm的结构就不一样了,它经过内部的各种分频倍频以后其实也是串口的倍数。
    • 发布于2017-09-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 51的这个速率是与晶振有关的,要把晶振的频率进行分频。

    而STM32是有PLL的,是可以通过软件程序进行时钟频率的。

    • 发布于2017-09-05
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51单片机的串口波特率问题