OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2907|回复: 2

原子历程F103ZET6\精英板 资料盘(A盘)\4,程序源码\2,标准例程-库函数版本\实验13 TFTLCD显示问题

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-8-10
在线时间
4 小时
发表于 2018-8-10 11:40:49 | 显示全部楼层 |阅读模式
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好深奥啊
       

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4524
金钱
4524
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-8-10 11:48:13 | 显示全部楼层
有关FSMC的引脚,一旦使用FSMC就是专用于总线控制的了,
一般情况下禁止做通用IO,否则会干扰总线时序。
如果非要用,你就必须确保二者是严格分时的,
即保证利用这些IO的时候,FSMC总线不工作,这种切换是很麻烦的。
所以还是找空闲的IO来用吧,何苦非要跟FSMC总线较劲呢?
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-8-10
在线时间
4 小时
 楼主| 发表于 2018-8-10 11:54:32 | 显示全部楼层
warship 发表于 2018-8-10 11:48
有关FSMC的引脚,一旦使用FSMC就是专用于总线控制的了,
一般情况下禁止做通用IO,否则会干扰总线时序。
...

噢 我现在是LCD占用
背光BL---PA1
+++++++++++++++
复位Res--D6
+++++++++++++++
数据:并口16
D0
D1
D4
D5
D8
D9
D10
D14
D15
E7
E8
E9
E10
E11
E12
E13
E14
E15
++++++++
控制:
RS--PG0
CS--PG12


后来又用了 PD6 PD7作为IO口

您的意思是说PD6 7会影响FSMC的时序吗?
它两看手册确实也有FSMC的标识。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-12 19:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表