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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MCU SPI+DMA驅動LCD的16bit數據拼接

[復制鏈接]
ID:997026 發表于 2022-7-19 11:02 | 顯示全部樓層 |閱讀模式
我現在驅動一塊TFT LCD,需要使用到SPI+DMA,并且需要同時使用SPI+DMA發送8bit和16bit數據。
初始化配置的是SPI+DMA的8bit發送,現在需要發送16bit,采用的是把兩個8bit拼接的方法,這也是網上很多人用的
一種方法,大概是這么實現的:

先定義一個數組
uint8_t  sendBuff[2]; //數組中的元素是8bit,共兩個元素,發送16bit數據的時候需要拼接這兩個元素

void senddata16(uint16_t data16)
{
    sendBuff[0] = data16 >>8; //---------------1
    sendBuff[1] = data16; //--------------------2
   //DMA依次搬運以上1,2數據就可以實現16bit發送
   DMA_Cmd(Enable);
}

主要上面這兩個1,2拼接方法不太理解,為什么這樣拼接一下就可以實現發送16bit數據?

比如data16=0x4A33, 右移8位變成0x004A, 不還是16位嗎?把0x004A賦給sendBuff[0], 因為這是8位數組,所以把16bit的0x004A賦值后,
高8位0x00被切斷了?實際上只是把0x4A賦給了數組?

下面的sendBuff[1] = data16; 相當于sendBuff[1] = 0x4A33; 把16bit數據直接賦值給8位數組?所以sendBuff[1] 最終的值是什么?

這幾個實在不太理解,希望得到專家的幫助,感謝
回復

使用道具 舉報

ID:248705 發表于 2022-7-19 13:36 | 顯示全部樓層
還是截斷哇,sendbuff[1] = 0x33
回復

使用道具 舉報

ID:68189 發表于 2022-7-19 13:53 | 顯示全部樓層

比如data16=0x4A33
uint8_t  sendBuff[2]; //
sendBuff[0] = data16 >>8; //---------------1
sendBuff[1] = data16; //--------------------2
經過以上賦值以后:
sendBuff[0] 當前值為 0X4A
sendBuff[1] 當前值為 0X33
回復

使用道具 舉報

ID:997026 發表于 2022-7-19 14:32 | 顯示全部樓層
發表于 2022-7-19 13:36
還是截斷哇,sendbuff[1] = 0x33

明白了,謝謝
回復

使用道具 舉報

ID:130230 發表于 2022-7-20 11:42 | 顯示全部樓層
你的sendbuff是u8類型的,只能保存u16的低8bit數據
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人九九精 | 日韩在线精品视频 | 久久y | 日韩成人一区 | 久久精品伊人 | 国产精品久久久久久久7电影 | 91福利网址| 国产传媒在线播放 | 欧美日韩综合 | xxx.在线观看 | 久久久久久国产精品免费 | 欧美亚洲高清 | 欧美一区二区三区 | 91色在线| 久色视频在线观看 | 天天草天天爱 | 免费观看色 | 91久久北条麻妃一区二区三区 | 欧美一区二不卡视频 | 午夜视频一区二区三区 | 在线观看av中文字幕 | 成人欧美一区二区三区色青冈 | 国产成人亚洲精品 | 欧美国产日韩精品 | 国产精品久久久久久亚洲调教 | 国产精品99视频 | 成人在线视频免费观看 | 久久精品国产亚洲a | 国产一区二区三区在线 | 亚洲精品乱码久久久久v最新版 | 一区二区三区四区在线视频 | 日韩成人在线观看 | av网站在线播放 | 午夜精品导航 | 亚洲午夜精品在线观看 | 国产一区二区三区免费观看视频 | 国产视频精品在线观看 | 国产精品精品久久久久久 | 97视频在线免费 | 人人澡人人爱 | 国产一区中文 |