![]() |
發布時間: 2024-1-29 14:19
正文摘要:請教各位大神,這是一個接收機收到無線遙控器其中一個按鍵后的從DATA口的輸出波形圖,我想用STM32單片機的一個IO腳來接收并解碼這個信號,低電平表示0碼,高電平表示1碼,存儲到一組數據中,我參考了stm32紅 ... |
很少見到無線搖控器用UART發數據的,這樣收發的程序都比較簡單了 |
你先試一下能不能用2400的波特率發數據,如果不能用2400波特率發數據,也就不能用2400波特率接收數據,有可能是波特率太低了,UART所在的APB時鐘太高了,降低UART所在的APB時鐘試一下。 |
你只需要計算打點的位置,UART的數據包含起始信號(固定為0),8位數據,停止信號(固定為1),UART一個字節有10位數據 |
昨天看了一個短視頻讓我深有感觸《我不幫你誰幫你》,回想自己剛入門的時候也是遇到了很多困難,也得到過很多熱心前輩的幫助。這里我就公布正確答案,這個波形是UART,是大多數入門單片機所學的第一個通訊接口,這個UART的波特率是2400。![]() 從上面這個圖片可以看出最小的頻率是2425,由此可以看出波特率是2400。 ![]() 這樣設置解碼,就可以用UART,2400波特率解碼這個協。 ![]() 這樣就得到了解碼后的數據, 一共4個字節,0xA5,0xF1,0x0E,0x5A 很明顯0xA5和0x5A是反碼,0xF1和0x0E是反碼,就是由這點我可以確定我這個方法解碼出的數據就是正確的數據。 ![]() ![]() 另一個波形圖解碼出的數據, 1、0xA5,0x8A,0x75,0x5A 2、0xA5,0xB5,0x4A,0x5A 由此可以看出第1個數據是搖控器的地址,第2個數據是搖控器的鍵碼,第3個數據是搖控器鍵碼的反碼,第4個數據是搖控器地址的反碼。 |
單片機研究協會 發表于 2024-2-26 09:55 是說以我的這個方案不和你爭。但人家愿意問,我就愿意回答。有原理說原理,有依據說依據。科學是大家的,螳臂擋車是徒勞且無效的。 |
lyonkon 發表于 2024-2-23 19:07 不愿意爭就不要再回復了 |
單片機研究協會 發表于 2024-2-23 17:34 我不愿意再為這個方案去爭,我只是說出來我的方法。樓主愿意用哪種方案去逆向,是樓主自己決定。 但是我不認為,我的方案不行。 |
lyonkon 發表于 2024-2-23 17:26 這是錯誤的數據 |
weispan 發表于 2024-2-23 02:00 比如每按下左鍵,STM32usrat總是接收到 0x70 82 33 66 55.然后將這一組數據寫入程序。 usart每收到一組數據,與你設定的數據對比。如果相同燈亮。如果不同,進行下一組數據對比。 |
這個波形其實很簡單的,你們都想復雜了,如果頂帖到100樓,我就公布解碼方法和解碼出的正確數據 |
weispan 發表于 2024-2-21 00:54 可以用stm32 usart 假設一個波特率然后嘗試接受遙控器數據。接受到的數據用dma存入片內sram 。然后在線調試,可以在內存里查看接受到的值,然后微調波特率直到滿意為止。 |
![]() 我把一共9個按鍵的波形都放上來,麻煩各位老師幫我指點一下 |
單片機研究協會 發表于 2024-1-31 02:06 正確的值,也要符合時序。相同的時序,可以用不同的系統和編碼來實現。上圖時序可以按自己的方式,或者符合自己單片機的方式進行編碼。保持發送和接收時序正確。 至于你說的什么正確的值,我絲毫不會介意。因為優化系統和時序的時候,用到你說的那個值的幾率不高。 你硬要說別人的值或者方案是錯的。那你繼續 |
lyonkon 發表于 2024-1-30 20:51 也許你以前做過類似的解碼,不過這個跟你之前做過的不一樣。 因為我知道正確答案,所以可以確定你猜錯了。 |
單片機研究協會 發表于 2024-1-30 18:15 或許我猜錯了,但是可以用。用單片機以我說的值,模擬這段波形時序,發送或者接受。就可以不需要知道具體的值。如果這個值能用 你說是錯的嗎。 我也可以隨便說,某某錯了 如何如何。但是,我說某人哪里錯了的時候,我必須拿出依據。 |
lyonkon 發表于 2024-1-30 15:47 你猜錯了,不是你想的那樣 |
單片機研究協會 發表于 2024-1-30 12:35 逆向工程,允許猜測,允許測試錯誤。我按照上圖直觀的猜測,按高低脈沖平均時間,作為1bit時間。圖上顯示是47位。我按照最高位補0或者最低位補0進行分析。如果錯了,你可以指明。 |
我看了你發的波形,大概知道怎么解了,如果愿意%,我可以提供程序和思路 |
lyonkon 發表于 2024-1-30 00:30 明顯是錯的,不要在這誤導人 |
依次是0x7F,0X52,0XD1,0XF3,0X84,0XB5一共6個字節。我根據第一幅圖猜的![]() |
這個是波形數據 |
2.13 KB, 下載次數: 7
先找到頭,再記錄分別記錄每個高低電平寬度,再統計高低電平個數。 |
把每個按鍵的數據都用邏輯分析儀測一下,然后對比,找出共同點和不同點,然后才好寫解碼程序 |
把邏輯分析儀測到的波形數據保存一下,然后上傳,這樣別人才方便看到更多細節,你這個圖片一放大就看不清了。 |
如果第一個位元一定是0 那就設置一個420us中斷 連續掃到高電平就代表收到頭幀 然后就可以讀40個電平 |