usart的dma實現(xiàn)是不是有問題?

比如說,我設(shè)置


??USART_InitStructure.USART_WordLength?=?USART_WordLength_9b;
??USART_InitStructure.USART_StopBits?=?USART_StopBits_1;
??USART_InitStructure.USART_Parity?=?USART_Parity_No;

因為已經(jīng)大于uint8了,所以我給dma的buff應(yīng)該是uint16才對,不然怎么獲取他的第九位。

??DMA_InitStructure.DMA_PeripheralDataSize?=?DMA_PeripheralDataSize_HalfWord;
??DMA_InitStructure.DMA_MemoryDataSize?=?DMA_PeripheralDataSize_HalfWord;


但是讀取數(shù)據(jù)的時候,卻把第九位扔了。只傳uint8

您好,關(guān)于串口數(shù)據(jù)長度配置成9位,是8位的數(shù)據(jù)位+1位的校驗位,通常用于串口的奇偶校驗,因此數(shù)據(jù)位的寬度還是8位,第9位為奇偶校驗位,由硬件處理完成,因此DMA的數(shù)據(jù)寬度還是配置成8位即可。后續(xù)若有問題,可通過郵箱(lzs@wch.cn)和我溝通


image.png

這個又該如何解釋,9個數(shù)據(jù)位,如果包含檢驗位,那實際數(shù)據(jù)位只有8位。8個數(shù)據(jù)位,如果包含檢驗位,實際數(shù)據(jù)位只有7位,這個確定是這樣的嗎?校驗位應(yīng)該單獨算的吧?


您好,當使用奇偶校驗的時候,數(shù)據(jù)位只能配置為9位,不能配置為8位


您好,


????????如果需要使用奇偶檢驗,需要講串口配置為9位數(shù)據(jù)位;如果需要使用DMA每次傳輸9位數(shù)據(jù),需要使用半字進行搬運,數(shù)據(jù)類型應(yīng)配置為16位


image.png


image.png


image.png





只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频