734|14

8

帖子

0

资源

一粒金砂(中级)

串口通信与lcd显示 [复制链接]

 

在第一次通过串口发送字符时,程序能进入中断处理函数,lcd显示为“b”,再次发送字符时,程序却不能进入中断处理函数,但把lcd显示代码去除掉,程序却能多次进入中断处理函数。

是不是lcd显示部分代码有误呢?求助各路大神

这是中断处理函数 问题1.png

这是主函数的lcd显示部分
问题二.png

此帖出自ARM技术论坛

回复

422

帖子

0

资源

版主

lcd显示代码多贴一点出来,这样好分析。


回复

8

帖子

0

资源

一粒金砂(中级)

wangerxian 发表于 2021-12-29 13:03 lcd显示代码多贴一点出来,这样好分析。

只写了这么多。。。

点评

你是调用这个函数,这个函数的实现代码贴出来,这样好分析。  详情 回复 发表于 2021-12-29 17:53

回复

422

帖子

0

资源

版主

搞不明白额 发表于 2021-12-29 16:34 只写了这么多。。。

你是调用这个函数,这个函数的实现代码贴出来,这样好分析。


回复

1447

帖子

3

资源

版主

i一直在自加,你要把接收的存在数组里。然后取出来在LCD中显示。你这中断函数写的有问题

点评

这个  i   不是进入一次中断才自加一次吗?我之前也把接收的存在数组里了,让lcd显示。但和我在一楼贴的只显示   i  的代码一样,只能显示一次,第二次再发送信息的时候,就进不去中  详情 回复 发表于 2021-12-30 09:45

回复

8

帖子

0

资源

一粒金砂(中级)

wangerxian 发表于 2021-12-29 17:53 你是调用这个函数,这个函数的实现代码贴出来,这样好分析。

应该是这个

1.png 2.png 3.png


回复

422

帖子

0

资源

版主

你LCD程序打开,再次发送程序不进入中断,是一直在while循环还是直接死掉了?

点评

  我在while函数里添加了一个 j[0] ,发现未进入第一次中断时,j[0]可以正常自加,出第一次中断后,lcd_printf(1,1,test)语句正常执行,但是j[0]不能正常自加了。 是不是能说明程序死掉了呢?[attachimg]5  详情 回复 发表于 2021-12-30 10:29

回复

8

帖子

0

资源

一粒金砂(中级)

annysky2012 发表于 2021-12-29 22:57 i一直在自加,你要把接收的存在数组里。然后取出来在LCD中显示。你这中断函数写的有问题

这个  i   不是进入一次中断才自加一次吗?我之前也把接收的存在数组里了,让lcd显示。但和我在一楼贴的只显示   i  的代码一样,只能显示一次,第二次再发送信息的时候,就进不去中断了。

这是将串口输入内容显示到lcd上的代码

11.png 22.png


回复

8

帖子

0

资源

一粒金砂(中级)

wangerxian 发表于 2021-12-30 09:40 你LCD程序打开,再次发送程序不进入中断,是一直在while循环还是直接死掉了?

 

我在while函数里添加了一个 j[0] ,发现未进入第一次中断时,j[0]可以正常自加,出第一次中断后,lcd_printf(1,1,test)语句正常执行,但是j[0]不能正常自加了。

是不是能说明程序死掉了呢? 11.png 33.png

点评

你如何判断l【cd_printf(1,1,test)语句正常执行】?  详情 回复 发表于 2021-12-30 11:55

回复

422

帖子

0

资源

版主

搞不明白额 发表于 2021-12-30 10:29   我在while函数里添加了一个 j[0] ,发现未进入第一次中断时,j[0]可以正常自加,出第一次中断后 ...

你如何判断l【cd_printf(1,1,test)语句正常执行】?

点评

lcd屏幕上显示串口输入的内容了  详情 回复 发表于 2021-12-30 13:55

回复

8

帖子

0

资源

一粒金砂(中级)

wangerxian 发表于 2021-12-30 11:55 你如何判断l【cd_printf(1,1,test)语句正常执行】?

lcd屏幕上显示串口输入的内容了

点评

那就没有死机,应该是【j[0]】超出显示范围了。LCD一般只显示字符串,空白字符是不显示的,你去查询一下ASCII表。  详情 回复 发表于 2021-12-30 14:01

回复

422

帖子

0

资源

版主

搞不明白额 发表于 2021-12-30 13:55 lcd屏幕上显示串口输入的内容了

那就没有死机,应该是【j[0]】超出显示范围了。LCD一般只显示字符串,空白字符是不显示的,你去查询一下ASCII表。

点评

j[0]应该没有超出显示范围。只要串口一发送字符串,lcd就显示出接收到的字符串,但无论此时j[0]自加到哪一个字符,都立刻停止自加了,实在不知道为什么。  详情 回复 发表于 2021-12-30 15:29

回复

8

帖子

0

资源

一粒金砂(中级)

wangerxian 发表于 2021-12-30 14:01 那就没有死机,应该是【j[0]】超出显示范围了。LCD一般只显示字符串,空白字符是不显示的,你去查询一下A ...

j[0]应该没有超出显示范围。只要串口一发送字符串,lcd就显示出接收到的字符串,但无论此时j[0]自加到哪一个字符,都立刻停止自加了,实在不知道为什么。


回复

32

帖子

1

资源

一粒金砂(初级)

中断函数里面用while    肯定会有问题的


回复

5

帖子

0

资源

一粒金砂(初级)

出现这样的问题基本上都是没有清除中断标志位造成的,可以看看有什么标志位没有清除

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

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表