Estoy utilizando el panel de descubrimiento STM32F0. Estoy viendo este tutorial en UART con el STM32F0. enlace
//variables need to be declared at the beginning
char Rx_indx, Rx_data[2], Rx_Buffer[100], Transfer_cplt;
//Interrupt callback routine
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
uint8_t i;
if (huart->Instance == USART1) //current UART
{
if (Rx_indx==0) {for (i=0;i<100;i++) Rx_Buffer[i]=0;} //clear Rx_Buffer before receiving new data
if (Rx_data[0]!=13) //if received data different from ascii 13 (enter)
{
Rx_Buffer[Rx_indx++]=Rx_data[0]; //add data to Rx_Buffer
}
else //if received data = 13
{
Rx_indx=0;
Transfer_cplt=1;//transfer complete, data is ready to read
}
HAL_UART_Receive_IT(&huart1, Rx_data, 1); //activate UART receive interrupt every time
}
}
La rutina de interrupción se activa al recibir un solo byte en UART. No estoy seguro de si puede soportar 6 Mbps como se menciona en la hoja de datos. Si no, ¿puede soportar hasta al menos 115 kbps? ¿Cómo se puede hacer que el código soporte hasta 6Mbps?