新手上路
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2018-8-10
- 在线时间
- 4 小时
|
1金钱
hi 求助啦我做项目,用F103ZET6,淘宝买了一个屏幕。接口啥的都是提前调查好的,和原子的一毛一样。
工作也挺好的,用FSMC驱动,就是直接抄袭的原子历程的代码,还有视频学习,一直没毛病。
昨天问题爆发了。
我今天回到原子的代码,直接编译下到我板子,正常work。
但是我加入几句话就坏掉了,屏幕白白的,不在显示。
原来的代码:
main
调用
LCD_Init();
该函数:
[mw_shl_code=applescript,true]void LCD_Init(void)
{
....
//背光
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //PB0 推挽输出 背光
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//数据
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_14|GPIO_Pin_15; // //PORTD复用推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; // //PORTD复用推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
//控制
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_12; // //PORTD复用推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOG, &GPIO_InitStructure);
....
上面是源码,可以的。我现在板子用到了PD6--给LCD复位的 PD7--485通讯的控制脚
我发现:PD6以及PD7都需要是高电平 一旦拉低 屏幕就白屏 不在显示了。
在上面源码加入:
[mw_shl_code=applescript,true] GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
[/mw_shl_code]
此时下到板子 屏幕就是白屏 因为PD7是低电平 除非加一句把PD7拉高 才能好
但是 现在PD7在收发的时候是要高低切换的。
想问:问题点在哪里?昨天看了看FSMC好深奥啊
|
|