ADS1110ASetup.c 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*--------------------------------------------------------------------------------------
  2. * @file ADS1110Setup.c
  3. * @author ZhangJing
  4. * @version base on stm32f0x
  5. * @date 2015.09.11
  6. * @brief ADS1110驱动
  7. ---------------------------------------------------------------------------------------*/
  8. #include "stm32f10x_gpio.h"
  9. #include "ADS1110Setup.h"
  10. #include "IIC2Setup.h"
  11. #include "ADS1110ASetup.h"
  12. /*************************************************************************************
  13. * Function: ADS1110Config
  14. * Object: 配置ADS1110
  15. * 输入: 无
  16. * 输出: 无
  17. * 备注: 1、uint8_t tempState = 0;返回状态
  18. **************************************************************************************/
  19. void ADS1110AConfig(void)
  20. {
  21. uint8_t tempState = 0;
  22. TWI2_START();
  23. tempState = TWI2_SendByte(ADS1110_WR_ADDRESS);
  24. if( 1 != tempState )
  25. {
  26. //发送终止IIC标志
  27. TWI2_STOP();
  28. return;
  29. }
  30. TWI2_SendNACK();
  31. tempState = TWI2_SendByte(ADS1110_CONFIG_REG);
  32. if( 1 != tempState )
  33. {
  34. //发送终止IIC标志
  35. TWI2_STOP();
  36. return;
  37. }
  38. TWI2_SendNACK();
  39. TWI2_STOP();
  40. }
  41. /*************************************************************************************
  42. * Function: RD_ADS
  43. * Object: 读ADS1110数据
  44. * 输入: 无
  45. * 输出: 转换后数据
  46. * 备注: 1、u16 W_B1byte_high, W_B1byte_low, W_B1_word;读取数据高低字节并由W_B1_word变量做组合计算
  47. **************************************************************************************/
  48. uint16_t RD2_ADS(void)
  49. {
  50. // u8 temp;
  51. u16 W_B1byte_high, W_B1byte_low, W_B1_word;
  52. TWI2_START();
  53. TWI2_SendByte(ADS1110_RD_ADDRESS);//0x90
  54. TWI2_SendNACK();
  55. //
  56. // if(!temp)
  57. // {
  58. W_B1byte_high /*= TMR_H*/ = TWI2_ReceiveByte();
  59. TWI2_SendACK();
  60. W_B1byte_low /*= TMR_L*/ = TWI2_ReceiveByte();
  61. TWI2_SendACK();
  62. W_B1_word = TWI2_ReceiveByte();
  63. TWI2_STOP();
  64. W_B1_word = (W_B1byte_high << 8)+ W_B1byte_low;
  65. // if (W_B1_word > 0x7fff)
  66. // W_B1_word = 0;
  67. return W_B1_word;
  68. // }
  69. // else
  70. // return 0x0000;
  71. }