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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10613|回復: 4
打印 上一主題 下一主題
收起左側

使用DMA控制SPI接口的液晶(ILI9341)

[復制鏈接]
跳轉到指定樓層
樓主
ID:90014 發表于 2015-9-14 18:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
SPI 接口的液晶屏一般來說只有這幾根線:    SCK    時鐘線
                                          MOSI   主出從入
                                          MISO   主入從出
                                          CS     片選
                                          D/C    數據命令選擇 (低電平為命令)
                                          RST    液晶屏復位//低電平復位
                                          BL     液晶屏背光
                                          VCC    電壓
                                          GND    地
數據線只有MISO 或者MOSI 一根 這和8080接口的16根線比起來 雖然SPI 接口節約引腳 可是速度太慢了,可以看到明顯的刷屏過程.即使使用有硬件SPI的MCU也沒有辦法彌補這樣的不足.
    但是如果使用帶有DMA的MCU的話就不會存在這樣的問題 使用DMA傳輸速度就會明顯提高 液晶刷屏的過程也看不到了

STM32F4 系列的DMA---SPI 配置


SPI_InitTypeDefSPI_InitStructure;

SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;//ILI9341使用16位 RGB 565的模式 一次就傳輸16位
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;

SPI_Init(SPI1,&SPI_InitStructure);
SPI_Cmd(SPI1,ENABLE);

void DMA_Configuration(void)
{
DMA_InitTypeDefDMA_InitStructure;

RCC->AHB1ENR|=RCC_AHB1Periph_DMA2;

DMA_InitStructure.DMA_Channel = DMA_Channel_3;  //通道選擇SPI1TX
DMA_InitStructure.DMA_PeripheralBaseAddr =(uint32_t)&(SPI1->DR);//DMA外設地址
//DMA_InitStructure.DMA_Memory0BaseAddr = mar;//DMA 存儲器0地址
DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral;//存儲器到外設模式
//DMA_InitStructure.DMA_BufferSize = 7;//數據傳輸量
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外設非增量模式
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable ;//DMA_MemoryInc_Enable;//存儲器增量模式
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;//外設數據長度:16位
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;//存儲器數據長度:16位
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;// 使用普通模式
DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;//中等優先級
DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;         
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;
DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;//存儲器突發單次傳輸
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;//外設突發單次傳輸

DMA_Init(DMA2_Stream5,&DMA_InitStructure);//初始化DMA Stream
//DMA_ClearITPendingBit(DMA2_Stream5,DMA_IT_TCIF7);
//DMA_ITConfig(DMA2_Stream7,DMA_IT_TC,ENABLE);
}

void SPI_DMA_SendByte(uint16_t Byte ,uint32_t Length)
{
DMA_Cmd(DMA2_Stream5,DISABLE);
while(DMA_GetCmdStatus(DMA2_Stream5)==ENABLE);
DMA2_Stream5->M0AR=(uint32_t)&Byte;
DMA2_Stream5->NDTR=Length;
SPI_DMACmd(SPI1,SPI_I2S_DMAReq_Tx,ENABLE);
DMA_Cmd(DMA2_Stream5,ENABLE);
while(DMA_GetFlagStatus(DMA2_Stream5,DMA_FLAG_TCIF5)==RESET);
DMA_ClearFlag(DMA2_Stream5,DMA_FLAG_TCIF5);
}


// ILI9341的具體驅動略

                                         



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

使用道具 舉報

沙發
ID:70915 發表于 2017-8-4 16:16 | 只看該作者
好帖,必須頂!
回復

使用道具 舉報

板凳
ID:82098 發表于 2020-3-19 15:17 | 只看該作者
可以發一份完整程序嗎?萬分感謝!260096@163.com
回復

使用道具 舉報

地板
ID:700061 發表于 2021-5-14 16:33 | 只看該作者
發一份完整程序吧,萬分感謝!
回復

使用道具 舉報

5#
ID:997026 發表于 2022-6-12 12:56 | 只看該作者
如果你的SPI數據長度配置位16位,確實對于LCD顏色數據發送比較方便,但是LCD的指令都是8位的,請問你配置位16位,要怎么發送8位LCD指令?
用標準庫函數怎么能解決既能發送8位又能發送16位的問題?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色综合视频 | 亚洲精品一区在线 | 97色综合| 在线视频成人 | 久久久女女女女999久久 | 亚洲一区 | 久久伊人精品 | 91精品国产一区二区三区 | 中文字幕亚洲欧美日韩在线不卡 | 国产精品一区在线观看 | 国产精品久久国产精品 | 九九综合| 色永久 | 国产午夜高清 | 免费a大片 | 欧美一级艳情片免费观看 | 午夜在线免费观看视频 | 色爱综合网 | 成人在线视频观看 | 黄色片免费看 | 犬夜叉在线观看 | 久久久久久亚洲精品 | 99国产精品一区二区三区 | 午夜免费影视 | 国产精品视频导航 | 欧美极品在线视频 | 久久精品97 | 波多野结衣亚洲 | 精品视频一区二区 | 国产精品久久久久久久久久久久久 | 亚洲一区欧美一区 | 欧美午夜视频 | 一级电影免费看 | 欧美日韩在线电影 | 亚洲一区二区三区在线免费观看 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 国产二区视频 | 桃色五月| 欧美aⅴ| 在线视频 中文字幕 | 毛片一级网站 |