<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
温湿度测试仪调试过程中发现串口通信不正常,发送乱码。由于该产品是07年设计的产品,并经过测试已在市面上销售,应该说是属于技术上成熟的产品。出现问题我首先想到应该是生产装配或元器件本身问题。于是从硬件着手,检测有无元件参数与实际图纸不相符合的地方,由于该测试仪能工作,能显示温度和湿度,因此排除单片机问题的可能性。串口外围电路也正常,为保险起见,用一个单片机开发板测试了一下串口电路,发现收发码正常,没有乱码的现像,那问题出在哪?难道是单片机串口坏了?还是软件有问题?回过头来看程序,仔细看波特率设置时才发现当硬件电路采用12M晶振时波特率误差是很大的,只有当晶振为 11.0592M时波特率的误差才为最小,更换晶振后故障得到解决。但让我不解的是,为什么以前用12M的晶振可以呢,不光是元件清单上注明的12M,就连程序释里也标明的12M,难道和元件批次有不同,不同的单片机会有不同的误差允许范围?
总之,误差太大是绝对不允许的,这应该属于一个设计上的错误。对于设计好的产品进行调试的时候不应该只是检测它的功能能否实现,而应该检测与该产品相关的各项技术参数是否达标,这样一个产品设计才是合理的。
用户114694 2008-5-27 10:14
用户80602 2008-5-26 20:20