11915|14

7

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

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

 

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

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

这是中断处理函数

这是主函数的lcd显示部分

此帖出自ARM技术论坛

最新回复

出现这样的问题基本上都是没有清除中断标志位造成的,可以看看有什么标志位没有清除  详情 回复 发表于 2022-1-6 14:48
点赞(1) 关注
 

回复
举报

6773

帖子

2

TA的资源

版主

沙发
 

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

此帖出自ARM技术论坛
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

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

只写了这么多。。。

此帖出自ARM技术论坛

点评

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

回复

6773

帖子

2

TA的资源

版主

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

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

此帖出自ARM技术论坛
 
 
 

回复

1412

帖子

3

TA的资源

版主

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

点评

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

回复

7

帖子

0

TA的资源

一粒金砂(中级)

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

应该是这个

此帖出自ARM技术论坛
 
 
 

回复

6773

帖子

2

TA的资源

版主

7
 

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

此帖出自ARM技术论坛

点评

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

回复

7

帖子

0

TA的资源

一粒金砂(中级)

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

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

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

此帖出自ARM技术论坛
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

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

 

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

是不是能说明程序死掉了呢?

此帖出自ARM技术论坛

点评

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

回复

6773

帖子

2

TA的资源

版主

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

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

此帖出自ARM技术论坛

点评

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

回复

7

帖子

0

TA的资源

一粒金砂(中级)

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

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

此帖出自ARM技术论坛

点评

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

回复

6773

帖子

2

TA的资源

版主

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

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

此帖出自ARM技术论坛

点评

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

回复

7

帖子

0

TA的资源

一粒金砂(中级)

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

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

此帖出自ARM技术论坛
 
 
 

回复

34

帖子

1

TA的资源

一粒金砂(中级)

14
 

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

此帖出自ARM技术论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

15
 
出现这样的问题基本上都是没有清除中断标志位造成的,可以看看有什么标志位没有清除
此帖出自ARM技术论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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