interfacing-tc72-temperature-sensor-with-stm32

by Marwen Maghrebi
#include "main.h"
#include <math.h>
#include <stdio.h>
#include <string.h>

#define ASSERT_CS()   (HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET))
#define DEASSERT_CS() (HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET))

typedef struct {
  uint8_t lsb_temp;
  uint8_t msb_temp;
}tc72_t;

void floatToStr(float val , char data[])
{
  if (val<0)
  {
    *data='-';
    data++;
    val*=-1;
  }
  int intVal =val*100;
  data[5] = (intVal %10) +'0';
  intVal /=10;
  data[4] = (intVal %10) +'0';
  data[3] = '.';
  intVal /=10;
  data[2] = (intVal %10) +'0';
  intVal /=10;
  data[1] = (intVal %10) +'0';
  intVal /=10;
  data[0] = (intVal %10) +'0';
  intVal /=10;
}

int main(void)
{
  tc72_t  tc72;
  uint8_t TxBuf[10];
  uint8_t RxBuf[10];

      char  str [20];
      char  str2[20] ="temperature = ";
      float temp;
      int   x;
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
MX_USART1_UART_Init();

while (1)
  {
    TxBuf[0]=0x80;
    TxBuf[1]=0x00;

    ASSERT_CS();
    HAL_SPI_Transmit(&hspi1, TxBuf, 2, 100);
    DEASSERT_CS();

    TxBuf[0]=0x01;
    temp = 0.0f;

    ASSERT_CS();
    HAL_SPI_TransmitReceive(&hspi1, TxBuf, RxBuf, 4, 100);
    DEASSERT_CS();
          if(RxBuf[1]& (1<<6))
          {
            temp+=0.5f;
          }
          else if(RxBuf[1]& (1<<7))
          {
            temp+=0.25f;
          }

   TxBuf[0]=0x02;
   ASSERT_CS();
   HAL_SPI_TransmitReceive(&hspi1, TxBuf, RxBuf, 4, 100);
   DEASSERT_CS();

   tc72.msb_temp = RxBuf[1];
   tc72.lsb_temp = RxBuf[2];

   int16_t Temp_reg = tc72.msb_temp <<8 | tc72.lsb_temp;
   Temp_reg >>=7;
   x= ((signed char)(Temp_reg));
   temp+=x;

   floatToStr(temp,str);

   HAL_UART_Transmit(&huart1,(uint8_t*)str2, sizeof(str2), 100);
   HAL_UART_Transmit(&huart1,(uint8_t*)str, sizeof(str), 100);
   HAL_UART_Transmit(&huart1,(uint8_t*)&"\n\r",2, 2);
   HAL_Delay(1000);
 }}
Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00