#include "gd32f30x.h" #include "systick.h" #include "bsp_iic.h" #include "sensor_tmp75.h" //#define TMP_SCL_PORT GPIOB //#define TMP_SCL_PIN GPIO_PIN_10 //#define TMP_SDA_PORT GPIOB //#define TMP_SDA_PIN GPIO_PIN_11 //#define TMP_SCL_H gpio_bit_write(TMP_SCL_PORT,TMP_SCL_PIN,SET); //#define TMP_SCL_L gpio_bit_write(MCU_LED_PORT,MCU_LED_PIN,RESET); //#define TMP_SDA_H gpio_bit_write(TMP_SDA_PORT,TMP_SDA_PIN,RESET); //#define TMP_SDA_L gpio_bit_write(TMP_SDA_PORT,TMP_SDA_PIN,SET); static IIC_IO_Def _TMP75IO; /*********************************************************************************************************************** Private Function ***********************************************************************************************************************/ static int TMP75Init() { return IICWriteByte(&_TMP75IO,TMP75_ADDR,TMP75_CONFIG_REG_ADDR,TMP75_CONFIG_REG_VALUE); } /*********************************************************************************************************************** Public Function ***********************************************************************************************************************/ void TMPSensorInit(void) { _TMP75IO.SCL_group = GPIOB; _TMP75IO.SCL_pin = GPIO_PIN_10; _TMP75IO.SCL_RCC = RCU_GPIOB; _TMP75IO.SDA_group = GPIOB; _TMP75IO.SDA_pin = GPIO_PIN_11; _TMP75IO.SDA_RCC = RCU_GPIOB; IICInit(&_TMP75IO); TMP75Init(); } /************************************************* Function : GetTMP() Description : get temperature on the board Input : *tmp Output : *tmp Return : null Engineer : tangtao Revision : V0.0 Modified Date : 2021.09.10 Additional Comments : *************************************************/ void BspBoard_ReadTemperature(signed short *tmp) { signed short temp; unsigned char swap; int is_OK = 0; static char delay_count = 0; if( (delay_count++) >= 1 ) { delay_count = 0; is_OK = IICRead(&_TMP75IO,TMP75_ADDR,TMP75_TMP_REG_ADDR,(unsigned short *)&temp); if(is_OK == 0) { swap = *((unsigned char *)&temp + 1); temp = temp << 8; temp &= 0xFF00; temp |= swap; *tmp = temp/256;/*temp *128/16/2048*/ } } }