本人开发金鹏电子的OCMJ8X15D(RA8806,并口)液晶,主芯片用的是STM32V8T6 弄了好几天终于搞好了,下面说一下我在开发中遇到的问题,仅供大家参考。那里有不对的请指教,附程序和电路图。 1. 首先考虑电源,一般液晶只支持 5V,但是STM32 是3.3V,包括 IO 口也是支持 3.3V 的(STM32 除了AD 转换口不可以直接接 5v 其他 IO 都是支持 5v 的,请详见DATASHEET),我又不想加 5v ,所以选了金鹏的液晶,支持 3.3v 。请注意在画 PCB 是一定将电源线直接接到液晶的VCC 上,并掌握走线的宽度。 2. 请大家一定注意你的液晶是用的什么控制芯片,因为不同的控制芯片时序和初始化都是不一样的,还要注意你想用的是8080 时序还是6800 时序。在这里我选用的是RA8806控制芯片8080 时序,金鹏的技术支持不是很好,他给我的是RA8822 的DEMO,数据手册上也没提(说实在的数据手册不是很好),害得我始终不能点亮屏,后来还是我跟他提的才发现给的DEMO 给我给错了,时序和初始化都乱的,能亮才怪。 3. 在配置 IO 口时数据的用开漏。控制信号用推挽就 ok 4. 调节对比度的时候会要用到一个电位器,大概 10-20K,金鹏的Vou t-Vo 大概是1.2K,Vo-GND 大概是8.7K,这是我的值,电位器是10K 的。 想到的就这些啦,上电路图和子程序,如果需要帮助可以联系 QQ:122014021 程序: 控制定义: #define LCD_RS (1<<7) #define LCD_WR (1<<8) #define LCD_RD (1<<9) #define LCD_CS1 (1<<10) #define LCD_CS2 (1<<11) #define LCD_BUSY (1<<12) #define LCD_INT (1<<13) #define LCD_RST (1<<14) 主函数: int main(void) { #ifdef DEBUG debug(); #endif delay1(5); Set_System(); GPIOC->BSRR = LCD_RD | LCD_WR ; GPIOC->BRR = LCD_CS1; GPIOC->BRR = LCD_RST ; GPIOC->BRR =LCD_BUSY ; delay1(5); GPIOC->BSRR = LCD_RST; delay1(5); LCD_Initial(); LCD_Clear(); LCD_RegWrite(0x10,0x00);//正常显示 LCD_RegWrite(0x00,0x0c);//文本模式,显示开 Display_Chinese("你们好",3,3,2,0); while (1) { } } MCU初始化函数: void Set_System(void) { RCC_Configuration(); NVIC_Configuration(); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//added by rzm100611 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//added by rz...