/*-------------------------------------------------------------------------------------- * @file ADS1110Setup.c * @author ZhangJing * @version base on stm32f0x * @date 2015.09.11 * @brief ADS1110驱动 ---------------------------------------------------------------------------------------*/ #include "stm32f10x_gpio.h" #include "ADS1110Setup.h" #include "IIC2Setup.h" #include "ADS1110ASetup.h" /************************************************************************************* * Function: ADS1110Config * Object: 配置ADS1110 * 输入: 无 * 输出: 无 * 备注: 1、uint8_t tempState = 0;返回状态 **************************************************************************************/ void ADS1110AConfig(void) { uint8_t tempState = 0; TWI2_START(); tempState = TWI2_SendByte(ADS1110_WR_ADDRESS); if( 1 != tempState ) { //发送终止IIC标志 TWI2_STOP(); return; } TWI2_SendNACK(); tempState = TWI2_SendByte(ADS1110_CONFIG_REG); if( 1 != tempState ) { //发送终止IIC标志 TWI2_STOP(); return; } TWI2_SendNACK(); TWI2_STOP(); } /************************************************************************************* * Function: RD_ADS * Object: 读ADS1110数据 * 输入: 无 * 输出: 转换后数据 * 备注: 1、u16 W_B1byte_high, W_B1byte_low, W_B1_word;读取数据高低字节并由W_B1_word变量做组合计算 **************************************************************************************/ uint16_t RD2_ADS(void) { // u8 temp; u16 W_B1byte_high, W_B1byte_low, W_B1_word; TWI2_START(); TWI2_SendByte(ADS1110_RD_ADDRESS);//0x90 TWI2_SendNACK(); // // if(!temp) // { W_B1byte_high /*= TMR_H*/ = TWI2_ReceiveByte(); TWI2_SendACK(); W_B1byte_low /*= TMR_L*/ = TWI2_ReceiveByte(); TWI2_SendACK(); W_B1_word = TWI2_ReceiveByte(); TWI2_STOP(); W_B1_word = (W_B1byte_high << 8)+ W_B1byte_low; // if (W_B1_word > 0x7fff) // W_B1_word = 0; return W_B1_word; // } // else // return 0x0000; }