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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1680|回復: 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我,不勝感激!!!!


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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,這部分就得另外實現了
回復

使用道具 舉報

5#
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产午夜精品一区二区三区 | 日韩欧美网 | 91porn成人精品 | 精品久久久精品 | 精品久久精品 | 国产在线观看一区二区三区 | 97精品超碰一区二区三区 | 在线观看亚洲 | 亚洲精品视频免费看 | 毛片免费观看视频 | 欧美日韩国产一区二区三区 | 久久久蜜桃一区二区人 | 欧美一区二区三区小说 | 色伊人网 | 一区二区久久电影 | 亚洲精品在线看 | 国产精品久久久久久久久久久久久 | 精品国产伦一区二区三区观看方式 | 国产乱码久久久久久 | 7799精品视频天天看 | 午夜精品久久久久久久久久久久 | 久久人人爽人人爽 | 九色视频网站 | 久久久久久久久久久久久久久久久久久久 | 国产免费一区二区 | 高清欧美性猛交 | 亚洲一区日韩 | www.日日干| www.黄色网 | 欧美网址在线观看 | 久在线视频 | 久久精品亚洲精品国产欧美kt∨ | 超碰日韩| 久久www免费人成看片高清 | www312aⅴ欧美在线看 | 黄a在线播放 | 精品永久 | 国产精品黄色 | 亚洲三级在线观看 | 欧美一区二区三区免费电影 | 国产午夜精品一区二区三区嫩草 |