Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Stm32f4 usart + внешний ацп

Пт дек 28, 2018 10:25:33

Добрый день, столкнулся с необычным мне ситуацией, камень stm32f407vet6 делаю обмен данными с ПК через usart. На порт С подключен внешний ацп 8 битный и usart тоже 8 битный. когда на ацп подаю 3В то usart просто вылетает не отправляет и не принимает байты, а если отправлю просто рандомные числа то все ок работает, как ацп подключаю все зависает
Код:
uint8_t byte;
int main(void)
{
  HAL_Init();
  MX_GPIO_Init();
  MX_USART2_UART_Init();
  MX_TIM2_Init();
  MX_TIM3_Init();
  MX_TIM4_Init();
  MX_TIM5_Init();
 
  __HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE);
  __HAL_UART_ENABLE_IT(&huart2, UART_IT_TC);
 
 while (1)
  {
     if(data[0] == 0x31){
        HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim5, TIM_CHANNEL_2);
        TIM2->CCR1 = 7;
    TIM3->CCR1 = 7;
        byte = (GPIOC->IDR)/4 ;
        for(int i = 0; i < 4096; i++){
        if((i % 2) == 0){
        buffer1[i]= '.';
        }else{
        buffer1[i] = GPIOC->IDR / 4;
        }
    }
       HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_1);
       HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);
       HAL_TIM_PWM_Stop(&htim4, TIM_CHANNEL_1);
    HAL_TIM_PWM_Stop(&htim5, TIM_CHANNEL_2);
    memset(data,0,1);
    HAL_UART_Transmit_IT(&huart2, buffer1, 4096);
     }
  }
 
}
Ответить