OpenEdv-开源电子网

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

再来求助,数据线错误问题。

[复制链接]

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2020-3-24
在线时间
52 小时
发表于 2020-6-25 21:55:35 | 显示全部楼层 |阅读模式
1金钱
问题描述:上电后MCU屏读出的ID不对,为0x4040,导致屏幕不能正常显示。后来用外部ram验证时发现,从起始地址写入连续的0、1、2、3,,,,数据时,观察窗口,相应的ram区显示的数都加了0x40,显示的是0x40、0x41,,,,,。起初怀疑是硬件的问题,但后来无意中用5.30版本的编译程序后,下载运行,屏幕显示居然正常了,读出来的LCD ID也显示是0x5310,当时以为是软件编译的问题,就搁下了,当时也就这个问题发了帖子求助了。

今天在研究学习的时候发现屏幕显示又不正常了,ID又变成了0x4040,于是又开始怀疑是已经的问题,自己在中间加了一段测试程序,用万用表量了相应的管脚,电压显示也正常并且在相应的变化着,然后把测试程序屏蔽后,重新编译下载运行,奇迹发生了,屏幕显示又正常了,ID也对了,真是百思不得其解,望高手指点一二。
int main(void)
{
        Cache_Enable();                 //′ò¿aL1-Cache
        HAL_Init();                                        //3õê¼»ˉHAL¿a
        Stm32_Clock_Init(160,5,2,4);    //éèÖÃê±Öó,400Mhz
        delay_init(400);                                //Ñóê±3õê¼»ˉ
       
//        do
//        {
//          GPIO_InitTypeDef GPIO_Initure;
//                __HAL_RCC_GPIOE_CLK_ENABLE();                        //ê1Äüê±Öó
//       
//                GPIO_Initure.Pin=GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10;
//                GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;                //íÆíìêä3ö
//                GPIO_Initure.Pull=GPIO_PULLUP;                        //éÏà-
//                GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;//¸ßËù
//                HAL_GPIO_Init(GPIOE,&GPIO_Initure);                   //3õê¼»ˉ
//    delay_ms(3000);
//               
//                HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_7);
//                HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_8);
//                HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_9);
//                HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_10);
//               
//        }while(1);
       
        uart_init(115200);                                //′®¿ú3õê¼»ˉ
  LED_Init();                     //3õê¼»ˉLED


说明一下,用的一直都是原子哥的源码。

最佳答案

查看完整内容[请看2#楼]

问题的真正原因找到了,很长时间一直在纠结这个问题。今天硬着头皮把所有的数据线和控制线都设置成输出,程序里定时让电平翻转,然后一个一个测量管脚的变化。在测量D6的时候发现此管脚最高电压只能到1V,于是就猜测是不是电源功率不够啊?正好手上有一个12V2A的适配器,换上以后再测,D6电平变化正常。再下载例程程序,显示也正常了!可以美美的睡一觉了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2020-3-24
在线时间
52 小时
 楼主| 发表于 2020-6-25 21:55:36 | 显示全部楼层
问题的真正原因找到了,很长时间一直在纠结这个问题。今天硬着头皮把所有的数据线和控制线都设置成输出,程序里定时让电平翻转,然后一个一个测量管脚的变化。在测量D6的时候发现此管脚最高电压只能到1V,于是就猜测是不是电源功率不够啊?正好手上有一个12V2A的适配器,换上以后再测,D6电平变化正常。再下载例程程序,显示也正常了!可以美美的睡一觉了
回复

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2020-3-24
在线时间
52 小时
 楼主| 发表于 2020-6-26 08:53:40 | 显示全部楼层
感觉还是某根数据线上的电压不正常,用测试程序测电压的时候PE9电压开始在2.3-1.5之间变化,慢慢的才在3.3-0之间变化。
回复

使用道具 举报

0

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2568
金钱
2568
注册时间
2019-10-18
在线时间
408 小时
发表于 2020-6-26 16:38:41 | 显示全部楼层
感觉还是硬件的问题
换个板测试下吧
问题可能芯片不良,管脚漏电,频率太高,板子不干净,pcb设计不合理等等,
所以多个板子交叉测试最实在
回复

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2020-3-24
在线时间
52 小时
 楼主| 发表于 2020-6-26 17:44:58 | 显示全部楼层
decai 发表于 2020-6-26 16:38
感觉还是硬件的问题
换个板测试下吧
问题可能芯片不良,管脚漏电,频率太高,板子不干净,pcb设计不合理等等, ...

用的阿波罗的底板和H743的核心板,也是感觉是硬件的问题,手上也是只有一块儿板子,没法试。那段程序感觉也是起到个充放电作用吧?现在程序改了一下,只要是读出来的ID不对就执行下这段程序,现在百试不爽。尤其是高低电平间隔改到5s,效果更明显。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 17:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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