久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1533|回復: 4
收起左側

求助關于STM32單片機SPI+dma傳輸數據的問題

[復制鏈接]
ID:905498 發表于 2023-8-23 12:57 | 顯示全部樓層 |閱讀模式
各位大佬好,前面發過一個問題了,現在又來麻煩大家了。
就是用STM32F103單片機驅動24位AD的話,通過硬件SPI,讀取數據時是這樣的:
//讀取24位數據
sum |= (SPI2_ReadWriteByte(0xff) << 16);
sum |= (SPI2_ReadWriteByte(0xff) << 8);
sum |= SPI2_ReadWriteByte(0xff);

if (sum & 0x800000)
        {
                sum += 0xFF000000;
        }
  return (int)sum;

就是通過DMA搬運到緩沖區的話,上述該怎么改寫呢?
因為24位分成3個部分通過DMA傳進緩沖數組的話,那不是一個數據分成3個部分了
我可以在 if (DMA_GetITStatus(DMAx_FLAG_TC) != RESET) 中將三個部分整合成一個數據,
但是在讀取AD數據的時候,我是不是可以直接:
SPI2_ReadWriteByte(0xff) << 16;
SPI2_ReadWriteByte(0xff) << 8;
SPI2_ReadWriteByte(0xff);
去掉sum了
希望各位大佬能夠指點指點迷茫的我,謝謝!如思路有誤或者有更好的辦法請盡情Q我,不勝感激!!!!


回復

使用道具 舉報

ID:419968 發表于 2023-8-23 17:42 | 顯示全部樓層
用聯合體
union Data
{
        unsigned int  sum;                       
        unsigned char byte[4];               
};
Data.byte[0]=SPI2_ReadWriteByte(0xff);
Data.byte[1]=SPI2_ReadWriteByte(0xff);
Data.byte[2]=SPI2_ReadWriteByte(0xff);
Data.sum 就是讀到的數了
回復

使用道具 舉報

ID:905498 發表于 2023-8-23 21:47 | 顯示全部樓層
adject 發表于 2023-8-23 17:42
用聯合體
union Data
{

大佬,不是很能明白。
還想i向您請教一個問題,就是:

1、SPI全雙工的,當我用SPI2_ReadWriteByte發送命令驅動AD的時候,也會有相應的返回數據通過DMA搬運進緩沖數組,那我在數據處理的時候該怎么舍棄這些沒用的數據啊
2、您給的這個例子中,聯合體該放在哪個位置呢?ad.h中嗎?
還有就是打括號中定義的 sum 并沒有調用,為什么Data.sum就是我所需要的一個24位數呢?
感覺和提問的最前邊的幾行代碼好像意義相通呢

恕小生愚鈍,還望指點一二,真的非常感謝!
回復

使用道具 舉報

ID:744809 發表于 2023-8-24 20:28 | 顯示全部樓層
小可愛u 發表于 2023-8-23 21:47
大佬,不是很能明白。
還想i向您請教一個問題,就是:

聯合體是共用內存空間的,只要把數據放進byte數組中,就相當于放進sum了,但是我看你最高位還判斷了0x800000是不是1,如果是1還得加0xff00000,這部分就得另外實現了
回復

使用道具 舉報

ID:905498 發表于 2023-8-28 08:57 | 顯示全部樓層
123156fsadf 發表于 2023-8-24 20:28
聯合體是共用內存空間的,只要把數據放進byte數組中,就相當于放進sum了,但是我看你最高位還判斷了0x800 ...

我前幾天看了一下用法,是的。理解了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美在线不卡 | 欧美亚洲免费 | 国产精品免费一区二区三区四区 | 成人免费久久 | 91操操操 | 国产精品一区二区av | 国产yw851.c免费观看网站 | 亚洲欧美日韩在线 | 欧美日韩视频一区二区 | 国产在线播 | 亚洲电影一区二区三区 | 久久99这里只有精品 | 久久四虎 | 久久久久国产精品一区二区 | 国产日韩欧美 | 亚洲精品日韩欧美 | 蜜臀久久99精品久久久久久宅男 | 91精品综合久久久久久五月天 | 亚洲精品字幕 | 三级特黄特色视频 | 欧美一区二区三区高清视频 | 国产精品不卡视频 | 久久久久久一区 | 久久精品综合 | 一区二区三区在线 | 欧 | 夜夜精品视频 | 日本一区二区三区在线观看 | japan21xxxxhd美女 日本欧美国产在线 | 亚洲日本欧美日韩高观看 | 色精品视频 | 伊人久久综合 | 日本在线视频一区二区 | 国产亚洲一区二区在线观看 | 一区二区三区在线播放 | 日日草夜夜草 | 黄色毛片免费 | 久久九九影视 | 久久精彩 | 四虎伊人 | 一区二区中文字幕 | 国产精品日韩在线观看一区二区 |