今天做專案的時候,發現下位機程式的資料位是usart_wordlength_9b
,一般在上位機如windows這種pc上是不支援第九位資料位的,所幸沒有校驗位,上下位機主要用第九位是否為1或0來做一些特殊的標誌處理,比如stm8官方手冊上就有說,第九位是用來判斷前8bit究竟是位址還是資料...
於是隨手一查,發現校驗位還有1校驗和0校驗,再點開qt給的校驗型別可知:
enum parity ;
enum databits ;
9位真不是網上其他人說的什麼包括校驗位,那是算波特率和傳輸速率才要算上校驗位的,下位機有處理單元專門處理第九位的,比如cubemx(某款ide)也有說明,usart_wordlength_9b配置成這樣時,微控制器程式從快取讀取時,也要用u16去接,而不是u8...
那沒辦法了,那要用到9位的收發,校驗位是一定不能要的,上位機暫時通過需要去配置spaceparity
或markparity
來讓發給下位機的資料保證在9位...
看看效果怎麼樣
未完待續...
用Qt寫的上位機
電子專業,一心搞硬體顯得太枯燥無味,正好接觸qt了,順勢為自己的小專案寫乙個上位機玩兒玩兒,熟悉一下qt環境下的桌面程式設計 一開始寫介面感覺速度太慢,索性就去現成的框架了,qframer不錯,介面做的還很好看,就拿來用了。開始的登入介面,用到資料庫程式設計,本地mysql程式,寫這個的時候遇到不少...
開源QT寫的串列埠除錯上位機(帶波形顯示)
為了方便pc機同微控制器 下位機 進行通訊,需要開發一款基於串列埠協議的上位機輔助除錯軟體。軟體不僅能夠向下位機傳送資料,傳送指令進而控制下位機,而且還應該能準確接收下位機發來的資料,便於對下位機的一些感測器採集的訊號進行分析。首先,在考慮到微控制器跟pc機通訊的問題時,一般的解決方案是通過一根串列...
上位機開發大師之路 Qt5的環境搭建
qt的版本種模擬較多,我選擇的是qt5的版本,原因是因為qt5自帶串列埠類,qt以前的版本中,沒有提供官方的對rs232串列埠的支援,編寫串列埠程式很不方便。而qt5版本中,官方自帶了qserialport模組,這極大地方便了我們的開發過程。就qt的編譯環境也有兩種,一種是mingw,一種是msvc...