OpenEdv-开源电子网

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

stm32用IO模拟8080时序,无法正确读取原子4.3寸屏的ID.

[复制链接]

3

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-7-14
在线时间
0 小时
发表于 2015-11-8 22:28:05 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]//IO配置代码 GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //推挽输出,GPIOD应该是作为并行数据线 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_All); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //推挽输出, GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_UP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB, GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14); // LCD_RES_SET; delay_ms(1); LCD_RES_CLR; delay_ms(200); LCD_RES_SET; delay_ms(200); //读取ID lcd_writecmd(0XDA00); id=lcd_readdata(); //读回0X00 printf("%x\n",id); lcd_writecmd(0XDB00); id=lcd_readdata(); //读回0X80 id<<=8; printf("%x\n",id); lcd_writecmd(0XDC00); id|=lcd_readdata(); printf("ID IS:"); printf("%x\n",id);[/mw_shl_code]


[mw_shl_code=c,true]//命令的读写 void lcd_writecmd(u16 reg) { LCD_RD_SET; LCD_RS_CLR;//命令 LCD_CS_CLR; //片选选中 //delay_us(1); LCD_WR_CLR; //写使能 DATAOUT(reg); //载入数据 reg=reg; LCD_WR_SET; //写除能 LCD_CS_SET; //取消片选 } uint16_t lcd_readdata() { uint16_t test=0X00; GPIOC->MODER=0x00;//将端口模式设置为输出 LCD_WR_SET; LCD_RS_SET;//数据 LCD_CS_CLR; //片选选中 LCD_RD_CLR; //写使能 test=GPIOC->IDR; //载入数据 LCD_RD_SET; //写除能 LCD_CS_SET; //取消片选 GPIOC->MODER=0x55555555;//将端口模式重新设置为输出 return test; }[/mw_shl_code]


在调试的过程中,发现写入数据时是正确的,但是读取到的ID并不正确,希望大神能够予以解答,OTL.


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

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-7-14
在线时间
0 小时
 楼主| 发表于 2015-11-8 22:39:42 | 显示全部楼层
补充一点的:屏幕与实验板之间用的是15cm的杜邦线连接,会不会是因为杜邦线的原因?
我之前在调试的成功刷出过颜色(循环显示几种颜色),但是循环若干次后就会出现卡死,或者是调色(本该显示黄色,却显示的是红色,,)
刚才在翻论坛,如果给每个信号线接上一个47欧的电阻会不会好一点呢?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-11-8 23:38:38 | 显示全部楼层
如果通过杜邦线连接,串接47欧电阻,效果就很好了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-7-14
在线时间
0 小时
 楼主| 发表于 2015-11-10 19:26:18 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
恩,好的,但是我在用FSMC驱动的时候,同样用的是杜邦线,但是就不会出现这种问题,,,
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-11-10 23:30:16 | 显示全部楼层
回复【4楼】力托斯特:
---------------------------------
这个看看波形吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 15:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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