با سلام خدمت دوستان ومهندسین گرامی ، من تازه شروع به کار با ARM و برد stm32f746 کردم میخواستم سنسور دمای داخلیش رو بخونم و روی یک سون سگمنت نمایش بدم ولی درست اجرا نمیشه ممنون میشم دوستان راهنمایی بفرمایند که ایراد کار کجاست.برنامه در keil نوشتم وبرای set کردن پایه های میکرو از cube mx استفاده کردم.
اینم برنامه:
کد PHP:
void SystemClock_Config(void);
void Error_Handler(void);
static 
void MX_GPIO_Init(void);
static 
void MX_ADC1_Init(void);

float vref=1.21;

void delay(int t){
    
int i;
    for(
i=0;i<0.1918*t;i++);
}

void seg_E(int n){
    
    
GPIOF->ODR=(1<<n);
    
}

int seg[]={0x40,0x4f,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};

void seg_w(int m){
    
    
GPIOD->ODR=seg[m];
}

void point_off(){
    
GPIOD->ODR|=(1<<7);
}

int main(void)
{


  
HAL_Init();

  
/* Configure the system clock */
  
SystemClock_Config();

  
/* Initialize all configured peripherals */
  
MX_GPIO_Init();
  


  while (
1)
  {
        
MX_ADC1_Init();
        
HAL_ADC_Start(&hadc1);
        while(!(
__HAL_ADC_GET_FLAG(&hadc1ADC_FLAG_EOC)));
        
int Vi=HAL_ADC_GetValue(&hadc1);
        
float Vsen=(vref*Vi)/4095;
        
float deg=((Vsen-0.76)/0.0025)+25;
        
        
int num=deg*10;
        
int c=num%10;
        
int b=(num/10)%10;
        
int a=num/100;
        
        
seg_E(0);
        
seg_w(a);
        
point_off();
        
delay(200);
        
        
seg_E(1);
        
seg_w(b);
        
delay(200);
        
        
seg_E(2);
        
seg_w(c);
        
point_off();
        
delay(200);
  

  }
  
/* USER CODE END 3 */