在发布了单通道实现篇之后,继续整理并记录在完成项目中测试硬件、调试代码的思路。上一篇文章是我第一次在CSDN发文,没想到第一次就上了最佳新人榜。基于STM32F103RC1的多通道ads1015通讯详细实现(单个通道实现篇)http://t.csdnimg.cn/8PvAAhttp://t.csdnimg.cn/8PvAA 实现篇是我对实现主机与ads1015通信的较为详细与系统的思路,而调试篇则是包含了我在实现项目过程中遇到的问题和它们的现象,我遇到这些现象后查找问题根源,解决问题的思考。
一、硬件简单介绍
在单个通道ads1015阶段,整个模块由两块板子,一根RS232信号线,一根供电导线组成。
第一块板子是数据采集板,一块数据采集板上附带两块ads1015,ads1015有四个ad转换通道,我们的设计是一ads1015上的两个AIN采集电压,另外两个AIN采集电流,另外数据采集板上还能连接两个mlx90614进行温度检测。ads1015与主机的通信是通过I2C协议,一块数据采集板上有两块ads1015,这就是上一篇文章中我介绍的ads1015用电阻将addr与不同的引脚连接后,可以完成对从机地址的选择。而mlx90614通过SMBus协议(SMBus是I2C协议的一个子集)与主机进行通信,为了避免太多系统资源被浪费。两块ads1015共用一根I2C总线,两块mlx90614共用一根SMBus总线,他们一起占用了RS232串口上的四个引脚(I2C_SCL、I2C_SDA、SMBus_SCL、SMBus_SDA),并通过RS232与主机进行通信。
第二块板子是状态监测板(主机