初级会员

- 积分
- 128
- 金钱
- 128
- 注册时间
- 2019-10-29
- 在线时间
- 56 小时
|
10金钱
使用DSI_IO_Write,发送第四条就超时了,一看是FIFO非空,不知道是不是配置上有什么问题。
void DSIHOST_DSI_Init(void)
{
DSI_PLLInitTypeDef PLLInit = {0};
DSI_PHY_TimerTypeDef PhyTimings;
hdsi.Instance = DSI;
hdsi.Init.AutomaticClockLaneControl = DSI_AUTO_CLK_LANE_CTRL_DISABLE;
hdsi.Init.TXEscapeCkdiv = 3;
hdsi.Init.NumberOfLanes = DSI_TWO_DATA_LANES;
PLLInit.PLLNDIV = 96;
PLLInit.PLLIDF = DSI_PLL_IN_DIV5;
PLLInit.PLLODF = DSI_PLL_OUT_DIV1;
if(HAL_DSI_Init(&hdsi, &PLLInit) != HAL_OK)
{
}
VidCfg.VirtualChannelID = 0;
VidCfg.ColorCoding = DSI_RGB888;
VidCfg.LooselyPacked = DSI_LOOSELY_PACKED_DISABLE;
VidCfg.Mode = DSI_VID_MODE_BURST;
VidCfg.PacketSize = lcdltdc.pwidth;
VidCfg.NumberOfChunks = 0;
VidCfg.NullPacketSize = 0xFFFU;
VidCfg.HSPolarity = DSI_HSYNC_ACTIVE_HIGH;
VidCfg.VSPolarity = DSI_VSYNC_ACTIVE_HIGH;
VidCfg.DEPolarity = DSI_DATA_ENABLE_ACTIVE_HIGH;
VidCfg.HorizontalSyncActive = (lcdltdc.hsw * 60000U)/50000;
VidCfg.HorizontalBackPorch = (lcdltdc.hbp * 60000U)/50000;
VidCfg.HorizontalLine = ((lcdltdc.pwidth + lcdltdc.hsw + lcdltdc.hbp + lcdltdc.hfp) * 60000U)/50000;
VidCfg.VerticalSyncActive = lcdltdc.vsw;
VidCfg.VerticalBackPorch = lcdltdc.vbp;
VidCfg.VerticalFrontPorch = lcdltdc.vfp;
VidCfg.VerticalActive = lcdltdc.height;
VidCfg.LPCommandEnable = DSI_LP_COMMAND_ENABLE;
VidCfg.LPLargestPacketSize = 16;
VidCfg.LPVACTLargestPacketSize = 0;
VidCfg.LPHorizontalFrontPorchEnable = DSI_LP_HFP_ENABLE;
VidCfg.LPHorizontalBackPorchEnable = DSI_LP_HBP_ENABLE;
VidCfg.LPVerticalActiveEnable = DSI_LP_VACT_ENABLE;
VidCfg.LPVerticalFrontPorchEnable = DSI_LP_VFP_ENABLE;
VidCfg.LPVerticalBackPorchEnable = DSI_LP_VBP_ENABLE;
VidCfg.LPVerticalSyncActiveEnable = DSI_LP_VSYNC_ENABLE;
VidCfg.FrameBTAAcknowledgeEnable = DSI_FBTAA_DISABLE;
if (HAL_DSI_ConfigVideoMode(&hdsi, &VidCfg) != HAL_OK)
{
}
/* Configure DSI PHY HS2LP and LP2HS timings */
PhyTimings.ClockLaneHS2LPTime = 35;
PhyTimings.ClockLaneLP2HSTime = 35;
PhyTimings.DataLaneHS2LPTime = 35;
PhyTimings.DataLaneLP2HSTime = 35;
PhyTimings.DataLaneMaxReadTime = 0;
PhyTimings.StopWaitTime = 10;
HAL_DSI_ConfigPhyTimer(&hdsi, &PhyTimings);
}
|
|