OpenEdv-开源电子网

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

关于无法进入串口中断的一些问题

[复制链接]

6

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2018-5-15
在线时间
86 小时
发表于 2018-6-1 14:30:51 | 显示全部楼层 |阅读模式
10金钱
在串口的学习过程中的一头雾水到现在有一点自己的理解,现在又碰见了一个问题,不知道是自己的理解问题,还是哪里出了问题,希望得到前辈的不吝指导和分析.

实验目标:开启了串口一的接收中断,当串口一收到数据的时候会进入中断处理函数 ,在串口中断处理函数中会再把串口接收到的数据发送出来.

实验现象:现在完成了串口一的配置和中断处理函数的编写.当通过串口助手发送的数据的时候会在发送回来,实验现象如下图.

问题:我现在使用一个按键中断,在按键的中断处理函数中,调用了void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)函数向串口一发送数据,按照我的理解是,当按键被按下的时候会向串口1发送定义好的数组数据(确实在串口工具上也有数据过来),但是我的理解在这个时候串口中断函数不应该也检测到串口一上有数据过来了吗,不也应该进入串口的中断处理函数,再把这个数据发送一遍吗?可是实验现象并没有,详细见截图.
TIM截图20180601140916.png TIM截图20180601141122.png TIM图片20180601142019.png

最佳答案

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

串口两根线,发送和接收,你的外部中断是用串口往外发送,走发送线,你的串口配置的接收非空中断即接收中断,当你发送的时候接收线上可没有数据,不会产生接收中断。你的程序在外部中断发生的时候绝不会进去串口接收中断的,除非你配置发送完成中断才会在发送完成后进入中断
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-6-1 14:30:52 | 显示全部楼层
串口两根线,发送和接收,你的外部中断是用串口往外发送,走发送线,你的串口配置的接收非空中断即接收中断,当你发送的时候接收线上可没有数据,不会产生接收中断。你的程序在外部中断发生的时候绝不会进去串口接收中断的,除非你配置发送完成中断才会在发送完成后进入中断
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

6

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2018-5-15
在线时间
86 小时
 楼主| 发表于 2018-6-1 14:34:45 | 显示全部楼层
不知道是我这个串口中断出了一些歧义,还是哪里有些错误.为什么按键按下向串口一发送了数据,串口一中断处理函数没有检测到呢?我再把串口中断处理函数贴出来,方便大家分析
回复

使用道具 举报

6

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2018-5-15
在线时间
86 小时
 楼主| 发表于 2018-6-1 14:39:02 | 显示全部楼层
TIM截图20180601142833.png TIM截图20180601143144.png 这个是串口一的中断处理函数与串口一的初始化函数,方便大家帮我分析
回复

使用道具 举报

6

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2018-5-15
在线时间
86 小时
 楼主| 发表于 2018-6-1 14:40:04 | 显示全部楼层
求大家帮帮忙,这种阻塞住的感觉好难受
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-6-1 14:48:30 | 显示全部楼层
你硬件TX引脚跟RX引脚相连了?没有说个毛
一分耕耘一分收获。
回复

使用道具 举报

6

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2018-5-15
在线时间
86 小时
 楼主| 发表于 2018-6-1 14:50:35 | 显示全部楼层
yklstudent 发表于 2018-6-1 14:48
你硬件TX引脚跟RX引脚相连了?没有说个毛

您的意思是?我这方面的只是比较少.
回复

使用道具 举报

2

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2018-5-14
在线时间
69 小时
发表于 2018-6-1 15:00:13 | 显示全部楼层
上过高速公路吗?发送和接收相当于高速公路的两个方向的行车道。电脑是北京,你的系统是上海,你从上海去北京,不可能同时也到达上海的,除非到达北京再从北京返回上海。
回复

使用道具 举报

6

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2018-5-15
在线时间
86 小时
 楼主| 发表于 2018-6-1 15:19:50 | 显示全部楼层
kvdong 发表于 2018-6-1 15:00
上过高速公路吗?发送和接收相当于高速公路的两个方向的行车道。电脑是北京,你的系统是上海,你从上海去北 ...

感谢感谢,明白了.
回复

使用道具 举报

6

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2018-5-15
在线时间
86 小时
 楼主| 发表于 2018-6-1 15:20:29 | 显示全部楼层
szczyb1314 发表于 2018-6-1 14:30
串口两根线,发送和接收,你的外部中断是用串口往外发送,走发送线,你的串口配置的接收非空中断即接收中断 ...

太感谢了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-2 19:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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