程序如下,採用串口DMA中斷方式接收上位機發送的數據,接受區長度爲4個字節,上位機也發送4個字節,按理說應該發送一次進入一次中斷,但是我的會進入兩次中斷,且第一次中斷的數據是上次發送的數據。
上位機發送的8687是ascii碼,一個碼是8位(一個字節),8對應的16進制是0x38,6對應0x36,7對應0x37。同樣發送4個字節的數據,DMA進入兩次中斷。第一次中斷第二個數據是上次接收到的,第二次中斷第二個數據纔是這次接收到的。
勾選16進制發送,34表示一個字節(8位)結果如下,發送4個字節,不知道爲什麼還會進入兩次DMA中斷,第一次中斷第二個數據的結果是上次放鬆的,第二次中斷纔讀到這次發送的結果。