OpenEdv-开源电子网

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

用STM32测试RF模块,外部中断调试问题。。求救

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2012-5-19
在线时间
0 小时
发表于 2012-5-20 00:53:30 | 显示全部楼层 |阅读模式
     调试RF模块好几天了。接收的程序一直有一个问题,找不出解决方法。
     我程序是在RF接收到数据的时候,即IRQ等于低电平的时候,用串口打印出发送过来的32个字节的内容。发送端一直在不断发送数据的。
     我出了一个这样的问题:
     1,如果我在while 循环中等待IRQ的出现,并且打印出接收到的内容。这样子在电脑上串口调试助手一直可以看到RF模块收到的内容 
     2,如果我是用下降沿检测IRQ中断,并且在中断程序中打印出接收到的内容,这样子电脑上就看不到串口有传送数据过来,也就是没有进入中断。
     3,我用数字示波器测IRQ脚,(初始化什么的都完成了),发现并没有波形的。我断开RF模块,IRQ脚和STM32中断脚之间的连线,并不断用低电平接触STM32中断脚,使其进入中断,这时候才能在示波器上观察IRQ脚有波形。  换句话说,我这么一侧,发现好像是RF模块接收完数据并且把数据都传输到串口上了,IRQ才有电平跳动,而不是IRQ先有电平跳动,让我们检测到,才开始接收数据。

     一直想不出是什么原因啊...能不能给点建议?谢谢啦!

         

PK_Send&Receive_STM32_PK.rar

703.12 KB, 下载次数: 164

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

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2012-5-19
在线时间
0 小时
 楼主| 发表于 2012-5-20 01:10:14 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-5-20 10:37:54 | 显示全部楼层
检查一下初始化代码吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2012-5-19
在线时间
0 小时
 楼主| 发表于 2012-5-20 14:50:05 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
额,我检查了一下。我有一个程序是用51接收的,下降沿触发,没问题的。然后直接改到STM32,STM32接RF模块IRQ的引脚是上拉输入,下降沿触发。还是不行。。
我发现在STM32中用while语句扫描低RF模块IRQ低电平是没问题的。但是如果是用下降沿中断来检测RF模块IRQ的下降沿就不行了,只有刚上电复位的时候是成功接收了一次,接下来就没了。
有可能是STM32没对RF模块IRQ清中断标志,RF模块的IRQ引脚才会没有下降沿而一直保持低电平是吧。。?可是我在STM32中断语句中,有清RF模块IRQ中断标志。
     Sta = SPI_Read(STATUS);
     SPI_RW_Reg(WRITE_REG+STATUS,Sta);
摸不着头脑了..从51移过来STM的程序用中断来触发就不行了。。好奇怪啊。。原子大哥,有没有什么建议啊。。谢啦~
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-5-20 15:28:33 | 显示全部楼层
这我也不清楚了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2012-5-19
在线时间
0 小时
 楼主| 发表于 2012-5-20 15:50:10 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥你没有用中断做过吗。?看你的例程是用循环的方式做的。不用中断是不是有什么原因啊?
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2012-5-19
在线时间
0 小时
 楼主| 发表于 2012-5-20 15:55:18 | 显示全部楼层
回复【6楼】paykoon:
---------------------------------而且。回复【5楼】正点原子:
---------------------------------
而且网上大部分的代码都是用while循环来等待IRQ低电平的,而不是用中断的。看到了一些人也遇到这个问题,但是没找到解决方法。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-5-20 20:43:19 | 显示全部楼层
回复【6楼】paykoon:
---------------------------------
没啥原因,当时就是做的轮询.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-26 00:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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