我使用UART發送了2和9。波特率為9600,沒有奇偶校驗,並且有8個數據位。
我們知道9以二進制形式表示為1001。但是,這是我從UART信號中得到的:
A 2表示為0010,但這是我從UART信號中得到的結果: 我知道我必須注意起始位,但除此之外,我很難理解該信號中的邏輯。
NOTE:
信號有效,但我只需要幫助分析它即可。
我使用UART發送了2和9。波特率為9600,沒有奇偶校驗,並且有8個數據位。
我們知道9以二進制形式表示為1001。但是,這是我從UART信號中得到的:
A 2表示為0010,但這是我從UART信號中得到的結果: 我知道我必須注意起始位,但除此之外,我很難理解該信號中的邏輯。
NOTE:
信號有效,但我只需要幫助分析它即可。
讓我們註釋您的第一個瞄準鏡。當我們這樣做時,請注意,二進制值的最低位首先被發送。此字段中的常規表示法是按如下順序對字節中的位進行排序:
[位7] [位6] [位5] [位4] [位3] [位2] [位1] [位0]
因此,當我進行批註然後評估時,位的位置會從已批註的範圍鏡頭上顯示的位置翻轉。
那裡表示的位模式是0b00111001。
與0x39相同。
0x39是'9'字符的ASCII碼。
讓我們為第二個範圍鏡做同樣的事情。
此處的位模式表示為0b00110010。
與0x32相同。
0x32是'2'字符的ASCII碼。
您可能發送了ASCII 9,而不是二進制9。ASCII9是0x39。位首先發送LSbit。
0011 1001反轉為1001 1100
首先,它們不是數字9和2,而是ASCII字符符號“ 9”和“ 2”,分別等於0x39和0x32。
這些位也首先發送LSB。這就是為什麼您看到前導0起始位,然後看到“ 9”為10011100,而“ 2”為01001100的原因。
您發送的 2
實際上是字符二,而不是十進制值2。2的ASCII碼是0x32或0b00110010,與您的其中一個匹配圖片。而且,這些位是從LSB發送到MSB的,因此您在“作用域”上看到的電平從左到右分別為0,1,0,0,1,1,0,0。