Tengo un hardware con el módulo bluetooth RN-41 y el microprocesador de brazo lpc 214. Actualmente, mi dispositivo solo envía datos al PC y trato de configurarlo para poder recibir algunos comandos a través del bluetooth y realizar ciertas acciones, por ejemplo. parpadeo del LED, apagado, etc.
Tengo una GUI en serie en matlab que tiene botones (LED encendido, LED apagado, APAGADO, etc.) donde cada botón que se presiona envía un valor asociado al hardware a través de un puerto serie virtual para realizar una acción determinada .
Hasta ahora no he podido hacer que mi dispositivo realice ninguna acción correctamente. Definitivamente veo que el hardware responde a una pulsación de un botón de formas extrañas pero nunca realiza la acción deseada. Creo que puedo haber configurado el UART incorrectamente. Aquí estoy pegando un código asociado con este problema.
Cualquier ayuda sería muy apreciada.
¡Gracias!
void setup_uart0(int newbaud, char want_ints)
{
baud = newbaud;
U0LCR = 0x83; // 8 bits, no parity, 1 stop bit, DLAB = 1
U0DLM = 0x00; // set for baud high byte
U0DLL = 0x06; // set for baud low byte
U0FDR = 0xC1;
U0LCR = 0x03;
VICVectCntl1 = 0x00000026;
VICVectAddr1 = (unsigned int) UART0ISR;
VICIntEnable = (1<<6);
//PINSEL0 = 0x0F001555;
}
void UART0ISR(void)
{
unsigned int i;
unsigned char ch;
U0IER = 0x01;
while(!(U0LSR&0x01));
uart0_rx_buffer[uart0_rx_extract_idx++]=U0RBR;
uart0_rx_extract_idx %=UART0_RX_BUFFER_SIZE;
ch = uart0_rx_buffer;
for (i=0;i<8;i++)
uart0_rx_buffer[i]= 0;
return U0RBR;
if(ch ==0x0A){
VICIntEnable &= (~0x00020000);
eventMarker=1;
ch=0;
}
else if (ch ==0x0B){
shutdown();
ch=0;
}
else if (ch ==0x0C){
blink(1,ON);
ch=0;
}
else if (ch ==0x0D){
blink(1,OFF);
ch=0;
}
VICIntEnable |= 0x00024000;
VICVectAddr= 0;
U0IER = 0x00;
}