Hi,
I am an old programmer (65) and I want to learn how to work with STM32. I live within 10km from ST plants in Crolles (France).Target is to be able to drive signals on a 7' railway layout
English is not my natural language.
For my first step, I bought a STM32F750 Discovery kit. I put in the usb cable and ... it works. I can use the demo apps.
My first question is : can I build a new small program and send it to the board WITHOUT destroying the default apps ?
Second question : when I installed Keil compiler, there was a 'pack installer' window. I could'nt find STM32F750 Discovery kit in it. Can I find it somewhere or do I have to use a 'similar' kit ?
Thanks in advance
Jean
Hi Andy,
like this ? ;-)
/* We should never get here as control is now taken by the scheduler */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { // is this while executed ? /* si on appuie sur le bouton, le clignotement est plus rapide */ if (HAL_GPIO_ReadPin(bouton_poussoir_GPIO_Port, bouton_poussoir_Pin)) { HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_1); /* Insert delay 400 ms */ HAL_Delay(400); } else { HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_1); /* Insert delay 1000 ms */ HAL_Delay(1000); } /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */
After a lot of works, I found a '}' that was not linked to a '{' in the small program I wrote in main.c (I think because of a bad use of copy / paste). I removed this } and all the errors are gone.
So I got a hex file that I downloaded to the board via CubeProgrammer. It has done something because, now, the screen is empty (no demo) but my simple program doesn't start ... In fact, I wanted to 'blink' led1 and it stay on.
PS Happy new year to everyone !
I don't know if it is the only thing that fixed this issue, but when i set optimization level to 0, the LED1 blinked !
When changing the optimisation level "breaks" code, it is (almost?) invariable the code that is flawed.
It most likely means that you are relying upon something that you should not.
A common example is not having 'volatile' where required.
Another is trying to rely upon the execution time of code.
https://www.avrfreaks.net/forum/tutcoptimization-and-importance-volatile-gcc - although focussed on GCC & AVR, it is general.