|
各位大佬好,前面發(fā)過一個(gè)問題了,現(xiàn)在又來麻煩大家了。
就是用STM32F103單片機(jī)驅(qū)動(dòng)24位AD的話,通過硬件SPI,讀取數(shù)據(jù)時(shí)是這樣的:
//讀取24位數(shù)據(jù)
sum |= (SPI2_ReadWriteByte(0xff) << 16);
sum |= (SPI2_ReadWriteByte(0xff) << 8);
sum |= SPI2_ReadWriteByte(0xff);
if (sum & 0x800000)
{
sum += 0xFF000000;
}
return (int)sum;
就是通過DMA搬運(yùn)到緩沖區(qū)的話,上述該怎么改寫呢?
因?yàn)?strong>24位分成3個(gè)部分通過DMA傳進(jìn)緩沖數(shù)組的話,那不是一個(gè)數(shù)據(jù)分成3個(gè)部分了。
我可以在 if (DMA_GetITStatus(DMAx_FLAG_TC) != RESET) 中將三個(gè)部分整合成一個(gè)數(shù)據(jù),
但是在讀取AD數(shù)據(jù)的時(shí)候,我是不是可以直接:
SPI2_ReadWriteByte(0xff) << 16;
SPI2_ReadWriteByte(0xff) << 8;
SPI2_ReadWriteByte(0xff);
去掉sum了
希望各位大佬能夠指點(diǎn)指點(diǎn)迷茫的我,謝謝!如思路有誤或者有更好的辦法請(qǐng)盡情Q我,不勝感激!!!!
|
|