Jump to content
LoKeR

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

Recommended Posts

Добрый день, столкнулся с необычным мне ситуацией, камень 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);
     }
  }
 
}

 

Share this post


Link to post
Share on other sites

Что это?

Это может быть чем угодно, только не сборкой текстовых данных на отправку, потому и спросил.

Share this post


Link to post
Share on other sites

Особенности схемотехники и трассировки печатных плат для STM32WB55

Разработка новых устройств на базе беспроводного микроконтроллера STM32WB от STMicroelectronics может быть сделана в короткий срок, если выполнять некоторые важные правила и воспользоваться готовыми конструктивными решениями и рекомендациями инженеров ST.

Читать статью

31 минуту назад, mail_robot сказал:

да это вообще по моему галиматья какая то

эт точно.

1 .зачем вообще отправлять 4к данных

где гарантия что их на ПК обработали

2. У UART есть события по ошибке, есть прерывание по ошибке. Взяли и посмотрели, что за ошибка. В чем проблема то?

3. buffer1 имеет нужную размерность. Самый распространенный баг - это порча памяти.

Share this post


Link to post
Share on other sites
В 28.12.2018 в 17:13, hasl сказал:

2. У UART есть события по ошибке, есть прерывание по ошибке. Взяли и посмотрели, что за ошибка. В чем проблема то?

Под событиями подразумеваются флаги?

Share this post


Link to post
Share on other sites
                     

CoolGaN - на предельной скорости коммутации!

Решения на галлий-нитриде (GaN) обладают фундаментальными преимуществами перед кремнием. В частности, имея более высокую критическую напряжённость электрического поля, в сравнении с традиционными кремниевыми транзисторами, транзисторы на основе галлий-нитрида обладают выдающимися динамическими характеристиками, что позволяет коммутировать их на высоких частотах. Семейство CoolGaN™ – это именно то, что необходимо, чтобы поднять ваши устройства на принципиально новый уровень. Мы собрали все самые интересные материалы по данной теме на одной странице.

Читать статьи

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...