qq1328512480
获得 70 次赞
帮助过226人
程序在附件LCDConf_stm32469i_discovery.txt 就是屏幕不能自动刷新,需要手动执行HAL_DSI_Refresh(&hdsi_disco);显示数据才可以通过DSI发到屏幕:例如:void Display_main(void){xtmp+=10;if(xtmp>220)xtmp=100;GUI_Clear();GUI_SetColor(0xFF0000FF); GUI_FillRect(0, 0, xtmp, xtmp); //执行这个DSI不会发数据到屏幕 需要发送: HAL_DSI_ShortWrite(&hdsi_disco, 0, DSI_DCS_SHORT_PKT_WRITE_P1, 0x35, 0x00); //发送TEON,才会有TE事件中断,刷新数据 } DSI设置: CmdCfg.VirtualChannelID = 0; CmdCfg.HSPolarity = DSI_HSYNC_ACTIVE_LOW; CmdCfg.VSPolarity = DSI_VSYNC_ACTIVE_LOW; CmdCfg.DEPolarity = DSI_DATA_ENABLE_ACTIVE_HIGH; CmdCfg.ColorCoding = DSI_RGB888; CmdCfg.CommandSize = HACT; CmdCfg.TearingEffectSource = DSI_TE_DSILINK; CmdCfg.TearingEffectPolarity = DSI_TE_RISING_EDGE; CmdCfg.VSyncPol = DSI_VSYNC_FALLING; CmdCfg.AutomaticRefresh = DSI_AR_DISABLE; CmdCfg.TEAcknowledgeRequest = DSI_TE_ACKNOWLEDGE_ENABLE; HAL_DSI_ConfigAdaptedCommandMode(&hdsi_disco, &CmdCfg); void LCD_ReqTear(void){ scanline =320 static uint8_t ScanLineParams[2]; ScanLineParams[0] = scanline >> 8; ScanLineParams[1] = scanline & 0x00FF; HAL_DSI_LongWrite(&hdsi_disco, 0, DSI_DCS_LONG_PKT_WRITE, 2, 0x44, ScanLineParams); /* set_tear_on */ HAL_DSI_ShortWrite(&hdsi_disco, 0, DSI_DCS_SHORT_PKT_WRITE_P1, 0x35, 0x00); //屏幕打开了TEON} 我现在用的屏没有TE_pin引脚,TE信号要通过DSI_link
几个小问题请教各位,其实平时也能避开,就是偶尔还会报错1.为什么C注释不能嵌套2.为什么总说指针运算比数组快?绝对的吗3.在引用的字符串内注释的话,是否合法啊?4.用字符串做切换的方法存在吗5.如何去调用BIOS函数?
各位好,今天收到一个故障的51板卡,板子是网上买的成品PCB,直接插元件焊接那种,焊接完毕后用的串口下载(RS232),软件一直显示检测不到单片机我排除了几项问题,实在没找到= =1.电脑驱动OK2.下载软件COM口,波特率,单片机型号等均没问题3.插入后电脑可以检测到COM口4.硬件焊接没问题5.条线帽连接OK6.供电口上电OK7.主板各处电压正常8.运行STc芯片自带程序(继电器)正 常希望各位有空是帮下忙~谢谢可能问题出在哪里?