MCU_通过windows串口API控制RTS和DTR
用FLYMCU-ISP進行固件燒錄的教程比較多,一直比較好奇,RTS和DTR這兩個引腳是如何通過軟件完成的。網上問這個問題的也不少,正確答案不多見。今天查了一下,做個備注吧!
問題
MCUISP是怎樣判斷并控制RTS和DTR輸出的?
比如下面這個,OPENEDV上討論得比較多的電路(以下圖片均來自OpenEDV【1】),
回答
事實上這個問題很簡單,通過Windows串口API即可實現,我直接把該函數列到下面【2】,
EscapeCommFunction function
- 12/05/2018
- 2 minutes to read
Directs the specified communications device to perform an extended function.
Syntax
C++Copy
BOOL EscapeCommFunction(HANDLE hFile,DWORD dwFunc );Parameters
hFile
A handle to the communications device. The?CreateFile?function returns this handle.
dwFunc
The extended function to be performed. This parameter can be one of the following values.
| CLRBREAK 9 | Restores character transmission and places the transmission line in a nonbreak state. The CLRBREAK extended function code is identical to the?ClearCommBreak?function. |
| CLRDTR 6 | Clears the DTR (data-terminal-ready) signal. |
| CLRRTS 4 | Clears the RTS (request-to-send) signal. |
| SETBREAK 8 | Suspends character transmission and places the transmission line in a break state until the?ClearCommBreak?function is called (or?EscapeCommFunction?is called with the CLRBREAK extended function code). The SETBREAK extended function code is identical to the?SetCommBreak?function. Note that this extended function does not flush data that has not been transmitted. |
| SETDTR 5 | Sends the DTR (data-terminal-ready) signal. |
| SETRTS 3 | Sends the RTS (request-to-send) signal. |
| SETXOFF 1 | Causes transmission to act as if an XOFF character has been received. |
| SETXON 2 | Causes transmission to act as if an XON character has been received. |
Return value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call?GetLastError.
Requirements
| Minimum supported client | Windows?XP [desktop apps | UWP apps] |
| Minimum supported server | Windows Server?2003 [desktop apps | UWP apps] |
| Target Platform | Windows |
| Header | winbase.h (include Windows.h) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |
?
參考:
【1】http://www.openedv.com/posts/list/50030.htm
【2】https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction
總結
以上是生活随笔為你收集整理的MCU_通过windows串口API控制RTS和DTR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [react] 你用过react版本有哪
- 下一篇: 用Java代码实现学生管理系统