I wonder if there is a recomanded way to use windows PC uart with FreeRTOS.
I am trying the FILE way, but having problems with it:
//———————
hComm = CreateFile( ComPortName, // Name of the Port to be Opened
GENERICREAD | GENERICWRITE, // Read/Write Access
0, // No Sharing, ports cant be shared
NULL, // No Security
OPEN_EXISTING, // Open existing port only
0, // Non Overlapped I/O
NULL); // Null for Comm Devices
.
.
.
Status = ReadFile(hComm, &TempChar, sizeof(TempChar), &NoBytesRead, NULL);
.
.
etc…
//—————————-
Thanks
Johanan
Windos port and PC uart
Windos port and PC uart
Here is a recent post about the Windows port of FreeRTOS. It says that you should never call any Windows API from within a FreeRTOS task. Likewise, you can not call a FreeRTOS API from within a Windows thread.
Please have a look at
demo_logging.c
(also mentioned in that post): it is a normal Windows thread that does call normal API’s. And as I explained, it is difficult to realise communication and synchronisation between a Windows thread and a FreeRTOS task.
You could write something like in demo_logging.c
, in which you get access to a serial port.
Try to work with FILE_FLAG_OVERLAPPED
:
~~~
handle = CreateFile(
useName,
GENERICREAD|GENERICWRITE,
0,
NULL,
OPENEXISTING,
FILEATTRIBUTESYSTEM | FILEFLAG_OVERLAPPED,
NULL);
~~~
The actual access is done with WriteFile()
and ReadFile()
.
Windos port and PC uart
Got it working.
Thanks.
Windos port and PC uart
You are quick !
Thanks for reporting back. Hein