Добрый день, привязал bluetooth к плате и пытаюсь через com-порт читать и сравнивать данные
void UART4_IRQHandler(void)
{
static int cnt = 0;
if( USART_GetITStatus(UART4, USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(UART4, USART_IT_RXNE);
char ch = UART4->DR;
if(ch != '\n')
{
received_str[cnt] = ch;
cnt++;
}
else
{
received_str[cnt] = '\0';
cnt = 0;
if (USART_GetFlagStatus(UART4, USART_FLAG_RXNE)==RESET)
{
LED_Flag = 1;
LED_Command = (int)received_str;
USART_puts(UART4, LED_Command); // здесь выводит мое введенное число
USART_puts(UART4, "\n");
}
}
}
}
сравнение полученных данных
main.c
...
while(1)
{
switch (LED_Command)
{
case 500: USART_puts(UART4, "LED_Command = 500"); break;
case 600: USART_puts(UART4, "LED_Command = 600"); break;
case 700: USART_puts(UART4, "LED_Command = 700"); break;
}
}
ну и код вывода
void USART_puts(USART_TypeDef *USARTx, volatile char *str)
{
while(*str)
{
while(USART_GetFlagStatus(UART4, USART_FLAG_TC) == RESET);
USART_SendData(USARTx, *str);
*str++;
}
}
Когда в терминале ввожу 500, 600 или 700 UART4_IRQHandler выводит их корректно, но вот почему-то в switch считает, что LED_Command не равен этим значениям