WOW :) Your Videos about the 746 Disco, TouchGFX, Integration and last but not least the most important Part: How to connect to the "real World" ... THAT´s the Stuff, ST should have made , when they released their ecosystem ! Very well explained, absolutely no problem to understand, what´s going on and you save a LOT of Time for MANY people :) Thank you so much for that :)
Thank you for this useful video, Karl. Your tutorial really helped me to get my Capstone project going, most definitely. I'm currently interfacing voltage, current, temperature, and relay sensors into my STM32F429-DiSCO board for the purpose of creating a monitoring system for a smart power supply. I have been able to display two tasks (temperature and humidity) concurrently on the LCD screen. Now, I'm trying to read and display voltages (3.3V, 5.0V, 12.0V, and 24.0V) and currents on the same screen. Hopefully, I will be able to pull it off with such a little time I have left near the end of the semester. Once again, thank you for sharing your knowledge.
I have a similar information monitoring project. How did you find the number of analog and digital pins available? I can't find this information that would allow me to choose my board.
Just two small hints for "not so experienced" users (like me...) ;) at 21:15, when you place the code in Model::tick, one parameter should be changed... So the according line should look like " if (osSemaphoreWait(binarySemAnalogHandle, 0) == osOK) ". changing the "100" to "0" switches off the timeout, which causes a complex gui to slow down like hell ;) At 19:31, when you place the HAL_ADC_Start_DMA, you should cast the pointer to the expected type :) Otherwise you get a compiler warning, because the array has to be uint16_t and the HAL function expects a uint32_t* ... So just change the code to " HAL_ADC_Start_DMA(&hadc1, (uint32_t*) &uhADCxConvertedValue[0], 10); " and the warning is gone :)
when i change uint16_t is unint32_t, and &uhADCxConvertedValue is uhADCxConvertedValue. waring is impossible but, value on lcd display not true. i change about author. value lcd display very good. exactly. difficult uint16_t and unint32_t. why ?
@@powerproton9139 As i wrote: The HAL_ADC_Start_DMA - function expects a POINTER type for a unsigned 32bit variable, so what you try to give it is the variable itself and not it´s adress, like expected. It would be als possible to declare the variable as uint32_t, but it´s an array and so you waste some bytes (10x32bit instead of 10x16bit) of stack, what can be painful later on, if you use FreeRTOS.... so just change the &uhADCxConvertedValue[0] in that HAL-function to (uint32_t*) &uhADCxConvertedValue[0] and everything is good :)
Hi, these are the best STM32 tutorials by far. I got the ADC working, but I don't fully understand everything that is going on in this tutorial. Outside of learning more FreeRTOS (which i'm doing right now), are there any good resources that you could recommend to help me understand more about how the touchgfx works? How to know what files do what and how to write code for them (for example, I'd have no idea about Model.cpp and Screen1Presenter.cpp, Screen1viewer etc). How have you managed to understand, what steps are needed? Thanks for any advice you could give. Thanks.
Greetings Karl, awesome video! This is exactly what I intend to do for my final year project, however the implementation I am working with requires 4 ADC inputs. I have set the GUI up using TouchGFX and used Keil as my IDE to adjust the coding according to your video. My code compiles but all I get is a blank screen. What would change in this implementation if I am using more than one ADC input? Any assistance will be greatly appreciated.
Hey, in terms of osSemaphoreRelease(...Handle) function, I understand that this functionality lock/unlock code access of the exectuted thread so that other threads do not have a potential acess to the updating value (of the ADC in this case). So this works like mutexes in terms of lock/unlock for pthread_create() in RTOS, am I understanding the use of osSemaphoreRelease in this sense, correctly?
Hello. I would like to ask a question. How is that LCD fixed to the pcb? I checked the PCB file provided by STM, but I have no idea how it is fixed. I would appreciate it if you could tell me in detail how it is fixed to the PCB.
Hi, thanks for videos. They are amazing. I have a question. I'm trying to save the text i entered from keyboard, on flash memory, how can i do? I'm new to Touchgfx. Could you help me? Thank you :)
Hi, thanks for sharing touchGFX tutorial , I am new to touchgfx, and trying to display float value on TextArea , using following code is working w/o problem. Unicode::snprintf(textArea2Buffer, TEXTAREA1_SIZE, "%d", gTvalue); textArea2.invalidate(); But if I change with floating Unicode::snprintf(textArea4Buffer, TEXTAREA4_SIZE, "%3.1f", gTvalue); I get text -- %3.1f is there anything setting I missing? please advics, thank you.
김상용 I am having the same problem. I can livewatch that uhADCxConvertedValue array values are continuously updated. I instrumented and discovered that Model::Tick is called only 2 times after start and that the callback of the ADC only once. If no callback, no semaphore and so no update of the value on the screen. I did not figure out yet why the callback does not occur. I used this tutorial starting from a blank project from TouchGFX 4.13 Designer then opened the .project file in CubeIDE 1.30.