STM32F429 Discovery multiple textArea update problem
Hello everyone,
I'm working with a STM32F429 Discovery team right now. The unit receives/receives a stream of data by interrupting the UART_5, in which the ';' character selects one data field from another within the stream. , all data fields are 6 bytes long and ASCII encoded. The problem is that the display has more texAreas, Screen1 contains five textAreaa, while screen2 contains four textAreas. TouchGFX editing is as easy as possible ,Box as background ,wildcards ,textArea nothing else. The problem is that the text is "blurry" when refreshed and appears here on the display, and unfortunately not according to the correct texArea position. I was thinking that Model:tick() and HAL_UART_Receice_IT() "interfere" with each other's tasks.
If there is a possibility to attach files here on the forum, I would attach main.c, screen1View.cpp and screen2View.cpp files.
I was thinking that I should stop the interrupt for the time of the display ---and this is the question of how do I do this --- and get it back on if I have the display refresh. How can this be explained by my question and of course based on the screenView files, why does the text to be updated appear here there? Thank you very much in advance for your help! Good luck to everyone and good weekend! , Thank you in advance for Help ,for everybody !
I 'm updating my post my message
Hi Everybody ,
Please excuse me for my bad english language knowledge ....
I working with STM32F429 Discorey and in since i posted my proble with this few days ago , and Thank You Very much for help for everybody !.
I watch in Youtube an video about semaphore . This is the YouTube Video Internet link : https://www.youtube.com/watch?v=bCppZf8FKYg . The author of video : Mr Karl Yamashita ,This is a very usefull video , and i learn much for this ! Thank You very much !
But when i compiled my project it is important to be mentioned ,I am use STMCube IDE System and the compiler gived the follow console error message :
C:/TouchGFXProjects/RX_GPS_GFX_Tracker/TouchGFX/gui/src/model/Model.cpp:39:35: error: invalid conversion from 'osSemaphoreId_t' {aka 'void*'} to 'QueueHandle_t' {aka 'QueueDefinition*'} [-fpermissive]
It's like xSemaphoreTake() method "need QueueHandle_t" type object / varianle. But ! The relevant part of project with problem it is the rows below :
Model.cpp file :
#include "cmsis_os.h"
#include "PollingRoutine.h
extern osSemaphoreId binarySemUartMsgHandle;
Model::Model() : modelListener(0)
{
}
void Model::tick()
{
if(binarySemUartMsgHandle != NULL)
{
if(xSemaphoreTake(binarySemUartMsgHandle , (TickType_t)10) == pdTRUE)
{
uartMsgRdy();
uartMsgRdy_1();
slice_gps_stat = Read_HC12_Radio_Stream(uartMsgBuf);
}
}
}
void Model:: uartMsgRdy()
{
modelListener -> uartMsgRdy();
}
void Model::uartMsgRdy_1()
{
modelListener -> uartMsgRdy_1();
}
My questios it is : what is the proble with xSemaphoreTake() API method arguments ? Why not accept
osSemaphoreId binarySemUartMsgHandle object ,when it 's really exist ? What appear the erron in complier widolw like this ?
C:/TouchGFXProjects/RX_GPS_GFX_Tracker/TouchGFX/gui/src/model/Model.cpp:39:35: error: invalid conversion from 'osSemaphoreId_t' {aka 'void*'} to 'QueueHandle_t' {aka 'QueueDefinition*'} [-fpermissive]
Thank You for EveryBody to help and good week end !


