Very good content, slow paced which is ideal for beginners, it's just a pity that the voice is monotone. At least in me it induces sleep. Aside from that, I have nothing to fault the videos, good work.
Great video. One small typo in "04 EXTI HAL lab.pdf" page 17 "In this example we are going to use one button - blue one (connected to PA5 as seen in the schematic below)"
I had the same issue when following along using the F769IDisco board. The code was getting stuck in an Error handler while loop before I could ever press the blue button. My problem was I initialized the project by the board and not the MCU. Once I initialize using only the MCU, and set up only the LED and Button pins, there was no other mystery code/interrupts trapping the execution.
What if IDE doesn't generate separate rising and falling edge callbacks in its hal_gpio.c file and generates one EXTI callback? this is in IDE 1.3 void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) { /* EXTI line interrupt detected */ if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u) { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); HAL_GPIO_EXTI_Callback(GPIO_Pin); } }
It´s not difficult to check the actual pin state and decide, how to continue... if (GPIOA->IDR & GPIO_Pin) {...} // true, if GPIO_Pin on port A is high ... there are also HAL functions for this (just don´t know them, because i never used them..)
Great Video. When i try to employ this resource on stm32f103c8 and stm32f407VE i've got an issue (both uC). I set falling edge trigger on EXTI when i apply 200 Hz signal (0 to 3,3V) to EXTI GPIO, the output should just to toggle, but through osciloscope i've seen this not happen exatly this way. Sometime has toggle on rising edge, sometime has a toggle on falling edge ( i've set only rising) and sometime no has togle in rising edge. Is there any setting that improves the EXTI performance in frequency (even low frequency)?
To avoid that, you may create some flags that can help you to make the tasks of your project with the transitions, if you are using pull up config, it could be with the 1 to 0 transition, otherwise with the pull down config will be with the 0 to 1 transition
I am using this lesson for a STM32G474RE nucleo board and got the same problem. It seems that if you are already selecting the falling edge for the interrupt in the hardware, you could just set the flag in the interrupt service routine itself (in the user code section) and not worry about the callback, or you could just use the callback you were given (as shown in your message) and redefine it, since it's only called on the falling edge anyway. This is a question for the instructor or the community, but I got it to work by doing the latter since it followed the course more closely.
I don't understand how the function HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) recognise the GPIO_Pin. What if I am using another button with another flag? I am missing something I think.
Seems that this way of programming understand only employers of the STM. Unable to make any program. Tried GPIOB->BSRR = GPIO_BSRR_BS11;, but that thing does not works.
I had to adapt to his accent as well. Then, I remembered this video is for people all around the world who speak English, and not just Americans. So indeed, it could be made by an English speaking person anywhere in the world who also might have an accent. Personally, I'm really glad he made the video and I'm willing to adapt to the accent out of gratitude.
@@ericnovikoff5077 we are talking about a multimillion USD company, if they want us to use their products, they should get someone who speaks neutral and clear English. The learning contents in Texas instruments are easy to understand and follow. Many of us are not here to learn how to develop embedded systems, we are learning how to use ST's products.
Very good content, slow paced which is ideal for beginners, it's just a pity that the voice is monotone. At least in me it induces sleep. Aside from that, I have nothing to fault the videos, good work.
Thank you for this instruction and the detailed explanations!
Great video.
One small typo in "04 EXTI HAL lab.pdf" page 17 "In this example we are going to use one button - blue one (connected to PA5 as seen in the
schematic below)"
I had the same issue when following along using the F769IDisco board. The code was getting stuck in an Error handler while loop before I could ever press the blue button. My problem was I initialized the project by the board and not the MCU. Once I initialize using only the MCU, and set up only the LED and Button pins, there was no other mystery code/interrupts trapping the execution.
Variables used in Interrupt functions should be declared volatile.
@Kavorka to not have issues with compiler optimization. (If variables arent changed in the code, compiler doesnt know they are changed from outside).
Thanks of millions
Is he filming this while being held hostage?
lol
What if IDE doesn't generate separate rising and falling edge callbacks in its hal_gpio.c file and generates one EXTI callback? this is in IDE 1.3
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
/* EXTI line interrupt detected */
if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u)
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
HAL_GPIO_EXTI_Callback(GPIO_Pin);
}
}
It´s not difficult to check the actual pin state and decide, how to continue...
if (GPIOA->IDR & GPIO_Pin) {...} // true, if GPIO_Pin on port A is high ...
there are also HAL functions for this (just don´t know them, because i never used them..)
Great Video.
When i try to employ this resource on stm32f103c8 and stm32f407VE i've got an issue (both uC). I set falling edge trigger on EXTI when i apply 200 Hz signal (0 to 3,3V) to EXTI GPIO, the output should just to toggle, but through osciloscope i've seen this not happen exatly this way. Sometime has toggle on rising edge, sometime has a toggle on falling edge ( i've set only rising) and sometime no has togle in rising edge. Is there any setting that improves the EXTI performance in frequency (even low frequency)?
Also, whole HW or HAL, LL level measures to be taken to avoid false toggling due to noise when pressing the button...
To avoid that, you may create some flags that can help you to make the tasks of your project with the transitions, if you are using pull up config, it could be with the 1 to 0 transition, otherwise with the pull down config will be with the 0 to 1 transition
hello, I dont have the both callbacks, just 1: HAL_GPIO_EXTI_Callback() ... why?
Hi there, for technical questions we really recommend you check out our community of experts and other developers at community.st.com
Same here.. did you figure it out?
I am using this lesson for a STM32G474RE nucleo board and got the same problem. It seems that if you are already selecting the falling edge for the interrupt in the hardware, you could just set the flag in the interrupt service routine itself (in the user code section) and not worry about the callback, or you could just use the callback you were given (as shown in your message) and redefine it, since it's only called on the falling edge anyway. This is a question for the instructor or the community, but I got it to work by doing the latter since it followed the course more closely.
@@stmicroelectronics these are class-specific questions that would be nice to have the instructor or another one to get answers from.
Yes. See my reply to Felipe below.
the problem is when we decide to ADD a new periperal function.....it scather everywhere....
thank you!!!
I don't understand how the function HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) recognise the GPIO_Pin. What if I am using another button with another flag? I am missing something I think.
Hi there, thanks for your question - may we point you towards our community.st.com, where you will find a team of people who can answer you directly ?
Seems that this way of programming understand only employers of the STM. Unable to make any program. Tried GPIOB->BSRR = GPIO_BSRR_BS11;, but that thing does not works.
Hello, Visit our online community to find answers to your technical questions and share ideas with your developers and ST experts : community.st.com
How do I check if it worked?
Your sound is very low!
Is there someone sleeping near you?
Man, speak like a normal people, plis
😂😂
Hi, thanks for watching, our engineers do their very best to create this content and we do consider your comment !
I had to adapt to his accent as well. Then, I remembered this video is for people all around the world who speak English, and not just Americans. So indeed, it could be made by an English speaking person anywhere in the world who also might have an accent. Personally, I'm really glad he made the video and I'm willing to adapt to the accent out of gratitude.
@@ericnovikoff5077 man, you're right
@@ericnovikoff5077 we are talking about a multimillion USD company, if they want us to use their products, they should get someone who speaks neutral and clear English. The learning contents in Texas instruments are easy to understand and follow. Many of us are not here to learn how to develop embedded systems, we are learning how to use ST's products.