Hello,
I am trying to toggle the Port C Pin 0 using the debugger (No eval board attached) for the device STM32F407 with the following code:
#include "stm32f4xx_hal.h" void delay() { for(int i = 0; i < 100000; i++); } int main (void) { while(1) { GPIOC->MODER = 0x01; GPIOC->BSRR ^= 1; delay(); } }
When stepping thorough the code, the GPIO in peripherals Window does not show any change to the values of MODER and BSSR. Its always 0 and does not work for other ports also. What is wrong?
thanks for the update. When I go to Peripherals -> System Viewer -> GPIO -> GPIOD, a window opens up which shows all register associated with the port such as MODER, GPIOD and many others. When the the code is executed I expect to see changes in these registers but no matter what is done there is absolutely no change in any of the register values, the value is always 0. Even when the (+) next to ODR is clicked the check box for ODR12 must be checked after running the code GPIOD->ODR ^= (1 << 12); But it is never checked. Any ideas whats happening?
>> .. debugger (No eval board attached) ..
You mean the simulator?
Yes, running simulator from debug options, Debug tab, use simulator.
Use real hardware, See "Simulated Features" in page below to understand why what you're doing doesn't work the way you imagine.
http://www.keil.com/dd/chip/6103.htm