我在串列埠的偶校驗竟然栽了跟頭

2021-07-09 11:49:33 字數 725 閱讀 6984

需要實現rs485的偶校驗,在c8051f微控制器上。

我知道sscom串列埠助手的奇偶校驗不好用(網上以前聽說的),所以我就先用sscomm的無校驗與目標板卡的無校驗進行除錯。結果搞定了。然後找了stm32板卡設定了傳送的偶校驗38400, usart_wordlength_8b, usart_stopbits_1, usart_parity_even.

於是就在c8051f板卡上各種實驗了。各種引數的配置。甚至還找來的c8051f自帶的自動配置軟體**生成器。由於我的工程c檔案過多,c**龐大,記憶體用的也差不多了,xdata基本用光,甚至不得不用了data區域的一部分記憶體。總是接收到錯誤的資料。

查了許多關於關於c8051f的配置就是查不到。官網的**也看了也沒有**。看了at51相關配置的描述,好像和c8051f差不多。

週六早上用斷點看了c8051f的接收,都收到了莫名其妙的資料。吃完早飯,我突然想,是不是stm32就傳送錯誤了呢。因為我對stm32太有自信了,我覺得不會出錯。但是還要驗證一下,於是用stm32板卡和rs232/rs485轉換板+筆記本的sscomm進行通訊,結果發現sscomm也是亂碼。我自己看了一下stm32的引數usart_wordlength_8b,找了一下頭檔案,竟然還存在usart_wordlength_9b。就這樣問題就解決了。

解決後翻了一下以前寫的arm7的一款晶元的偶校驗,裡面的配置就是5/6/7/8個bit共4種選擇。卻沒有9bit。

為了這個偶校驗,折騰的時間估計超過了6個小時。

51微控制器實現串列埠偶校驗

1.stc微控制器串列埠 2.psw是乙個8位暫存器。psw的全稱是program status word,即程式狀態字。奇偶標誌位p 每執行一條彙編指令,微控制器都能根據a中1的個數的奇偶自動令p置位或清零,奇為1,偶為0。p可以填入tb8,作為偶校驗。此標誌位對序列通訊的資料傳輸非常有用,通過就...

我在寫串列埠通訊程式遇到的坑

我在做基於hc6800的51微控制器上,寫串列埠通訊程式遇到了許多坑。乙個大坑 為什麼hc6800上u轉串列埠不能傳送資料。圖1 燒錄軟體 圖2 軟體的暗示 圖3 開啟串列埠除錯助手 圖4 微控制器掉電 圖5 黃框是另乙個串列埠 圖6 串列埠短路帽正確的接法 在完成了以上步驟之後,基本上我們就完成了...

此後如竟沒有炬火 我便是唯一的光。

工作中常常會迷茫,也會感想 因為總會時不時的面臨被甩來又無法推脫的鍋,從一開始的任勞任怨,積極提出建議並時不時地設計優化流程的小demo,希望可以靠自己的努力把每一件事情做的更好好,到後來唯恐每件事情都要劃清職責,遇到甩鍋也不再樂忠於鑽研問題,享受解決問題後的那種快感,而只是想著如何才能不被甩鍋 我...