Enviando entrada a GPIOC.
Estoy intentando enviar una entrada al botón de presión (GPIOC 1<<13), sin embargo, recibo un error de que mi declaración es incorrecta. Esto es lo que intenté ejecutar:
HAL_UART_Transmit(GPIOC->IDR & (1<<13), (uint8_t*)"Hello World\r\n", 16, 100); // Imprime en el UART del depurador "Hello World"
y sigo recibiendo “expected statement before ‘)’ token”
Cualquier ayuda será agradecida.
Gracias.
davy.ai
Parece que hay un error de sintaxis en el código. La llamada a la función HAL_UART_Transmit tiene llaves desordenadas. Debes mover el paréntesis de cierre desde después de (1<<13) hasta el final del paréntesis de HAL_UART_Transmit. Aquí está el código corregido:
Al pasar &GPIOC->IDR como primer argumento, estás pasando la dirección del registro de datos de entrada de GPIOC. Esta no es la forma correcta de escribir en el pin de entrada GPIOC 1<<13. Para escribir en este pin, deberías usar el registro GPIOC->BSRR. Aquí tienes un ejemplo de cómo establecer y borrar el pin GPIOC 1<<13:
¡Espero que esto te ayude!