Estoy trabajando en una plataforma de lanzamiento TM4C1294XL de TI con KEIL y tuve un problema al principio. Instalé todos los controladores, tanto para USB como para KEIL, luego subí con éxito el ejemplo de TI a bordo para que funcionara sin ningún problema. Después de eso agrego un código muy básico, en el programa predeterminado solo parpadea el LED de usuario del PN0 y agrego un poco de código para parpadear PN1 adicionalmente, pero nada ha cambiado. El LED PN0 sigue parpadeando pero PN1 no lo está. Intenté parpadear otros LEDS PF0, PF4 integrados, pero el resultado es el mismo. Aquí está el código:
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
/**
* @brief Program main function
* @param void
* @retval none
*/
int main(void)
{
volatile uint32_t ui32Loop;
/* Enable PORTN peripheral access */
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
/* Check if the peripheral access is enabled. */
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPION))
{
}
/* Enable the GPIO pin for the LEDS (PN0, PN1). Set the direction as output, and
enable the GPIO pin for digital function. */
GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0);
GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_1);
while(1)
{
/* Turn on the LEDS. */
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0x01);
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, 0x01);
/* Delay for a bit. */
for(ui32Loop = 0; ui32Loop < 1200000; ui32Loop++)
{
}
/* Turn off the LEDS. */
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0x00);
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, 0x00);
/* Delay for a bit. */
for(ui32Loop = 0; ui32Loop < 1200000; ui32Loop++)
{
}
}
}
He estado trabajando en los microcontroladores de ST durante más de 2 años, pero nunca tuve ese tipo de problema. ¿Es posible un problema causado por alguna característica de protección contra escritura?