引用楼主 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來作頻率源的, 就算你這台機子通過示波器校準了 到了生產那一天你就會後悔了.
有便宜一點的陶瓷晶體可供考慮.