上两周主要在探索单片机实时采集AD值并用串口发送到电脑端处理。虽然原理比简单,但由于个人理论功底还有所欠缺,再加上前期目标还不清晰,所以花的时间还是有点多。
无论怎么改变采集信号的频率,发现波形还是这样。再三检查程序确认没有问题时仔细阅读AD的芯片资料后,发现手上这款PCF8591芯片内部自带了峰值保持电路,也就是正弦信号理论上只能采集它的峰值,这与我们实际采集到的信号是一致的。这款芯片适合增益可调模块不适合采集信号。换了另外一个单片机的AD来采集,果然得到了预期的结果:
刚开始在很长一段时间内串口读不到AD采集的电压值,但在单独调试串口时却是好的。经过很长时间的测试才发现串口中断也定时中断同时打开,导致程序跑飞。后来改中断方式为查询方式,避免了这个问题。后来又遇到了串口波特率一致问题。软件问题都一一解决后,终于能读到数据。画出波形:
正弦信号:幅值2V,偏执1V
无论怎么改变采集信号的频率,发现波形还是这样。再三检查程序确认没有问题时仔细阅读AD的芯片资料后,发现手上这款PCF8591芯片内部自带了峰值保持电路,也就是正弦信号理论上只能采集它的峰值,这与我们实际采集到的信号是一致的。这款芯片适合增益可调模块不适合采集信号。换了另外一个单片机的AD来采集,果然得到了预期的结果: