|
u16 color1[1],t=1;
u32 num,num1;
color1[0]=color;
num=(xend-xsta)*(yend-ysta)*4;
LCD_Address_Set(xsta,ysta,xend-1,yend-1);//设置显示范围
MYDMA_Config_Color();
LCD_CS_Clr();
SPI2->CR1|=1<<11;//设置SPI2 16位传输模式
while(t)
{
if(num>65534)
{
num-=65534;
num1=65534;
}
else
{
t=0;
num1=num;
}
HAL_SPI_Transmit_DMA(&SPI2_Handler,(uint8_t *)color1,num1);
while(1)
{
if(__HAL_DMA_GET_FLAG(&SPI2TxDMA_Handler,DMA_FLAG_TC5))//等待通道5传输完成
{
__HAL_DMA_CLEAR_FLAG(&SPI2TxDMA_Handler,DMA_FLAG_TC5);//清除通道5传输完成标志
HAL_SPI_DMAStop(&SPI2_Handler);
break;
}
}
}
Hal库提供这个HAL_SPI_Transmit_DMA函数似乎只能发送8位的数据,但是我颜色代码是16位的,导致我LCD屏幕颜色错误,请教下各位,我应该怎么去发送16位的数据
|
|