Cake chan Ответов: 0

Здравствуйте, мне нужна помощь с кейлом о USART(STM32)


Всем привет.
Мне нужно передать через UART фиксированный номер в блоке данных через команду.

Но это не работает...

Что я уже пробовал:

Я сделал это :
void USART2_IRQHandler(void) 
{
    if ( USART_GetITStatus(USART2, USART_IT_RXNE) )
    {
        USART_ClearITPendingBit(USART2, USART_IT_RXNE);
        RX_buffer[RX_write] = USART_ReceiveData(USART2);
        RX_write++; //chetchik ukazatel na massive
        RX_ct++;
        if (RX_ct == 3)
        {
            if (RX_buffer[0] == 0x01) //ID
            {
                ID();
            }
        }
    }
}

void ID (uint8_t i) 
{
    while (!USART_GetFlagStatus(USART2, USART_SR_TXE))
    {
    }
    USART_SendData(USART2,i=10);
}

Rick York

Вы определили, какая часть не работает?

Вы вызываете пять различных функций USART из этого обработчика IRQ, поэтому начните с самого начала : вызывается ли обработчик? Затем проверьте каждый вызов функции оттуда. Отладчики полезны для такого рода вещей, но я знаю, что они могут быть трудными во встроенных средах, поэтому какой-то механизм трассировки может помочь в этом, если отладка в стиле printf является опцией.

0 Ответов