完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
最近在用cc1101做无线传输,可是如果使用轮询法接收,都挺正常的。但是使用外部中断,GPO0来进行触发接收的话,把halRFReceivePacket函数放到终端中,就会死机,死在“while(MISO);”上面。不知道这是为什么。查看cc1101手册上说 CSN拉低MISO会立即被拉低,除非CC1101进入SLEEP或者OXFF状态,可是我发送方每次只发送5字节数据。数据量很小了,不知道为什么会死机,让我很困扰,一直在调试。不知道有没有前辈能指教下,万分感谢。
|
|
相关推荐
18个回答
|
|
|
|
|
|
|
|
|
有没有做过的人来解释下 点拨下
|
|
|
|
|
回帖奖励 +1 分积分
GPO0和GPO1引脚的功能是可以自己配置的,所以可以看看引脚功能是否配置正确。因为GPO0和1都可以用来检测数据到来
|
|
|
|
|
|
我查了下手册,如果你GPO0要产生中断信号给MCU的话,那么你得把GPO2的寄存器配置成0x06,用来检测是否接收到同步字。英文手册第56页有说明的,不然的话你的MCU永远不知道什么时候接收到数据了
|
|
|
|
|
|
我觉的你那个不应该是while(MISO)应该是while(GDO0)。 因为当GDO0配置成0x06的时候,GPO0默认输出是高电平,当接收到同步字的时候就转换为低电平了,当接收完数据后又转换成高电平了。
我也不是很懂,大概就知道些,对不对你再看看手册吧。 我的接收函数就是 CC1101SetTRMode( RX_MODE ); while(GDO0); while(!GDO0); 等这段程序执行完成后,FIFO里面就是接收到的数据了,你再用MCU通过SPI读出数据就行了。 |
|
|
|
|
zhang_forever 发表于 2013-12-25 11:19 你说的不错 我知道你说的这个 之所以出现你说的while(GDO0) 死在这里是 是因为使用的是查询法的原因。而我现在用的是 中断模式 根据GDO0的上升下降沿进入中断再 处理数据 不会出现你说的这个问题。之所以死在while(MISO)我翻阅了很多资料,看到一句话是 是等待电压调整稳定并且晶振运行才会在csn拉低的情况下,MISO拉低,所以有可能是晶振不同步导致的,但是不知道具体原因,这个要做成功的前辈们来解答了··· |
|
|
|
|
|
o 我大概明白你的意思了。 MISO口其实就是GDO1口, CSN拉低后,MISO会返回一个低电平,表示1101芯片已经准备好了,可以开始传送数据了。又由于MISO口是SPI的一个端口,所以它还要用来传送数据, 所以当你使用玩了RecPackets函数以后,MISO口的电平状态已经被更改过了,所以while(MISO)才可能会停留。 因为RecPackets函数里面封装了 ReadReg(读取1101寄存器的函数),而ReadReg一般再书写的时候已经进行了while(MISO)或者是while(GDO1)的判断了。 不知道这个解释对不对。 |
|
|
|
|
|
恩,那该如何解决这个问题呢。我在中断中放一个标志位,出中断根据标志位的置位再来处理RecPacket函数就不会死在while(MISO),如果将RecPacket放在中断去处理就会出现这情况,这又怎么解释 |
|
|
|
|
|
这个我也真的不太了解了,你试试在while(MISO)前加个CSN =0的拉低语句。我之前那个项目,都是自己读1101的状态,然后看到底是什么问题,慢慢磨出来了,好久不用也记不太清了。 |
|
|
|
|
|
while(MISO);之间本来就有csn=0拉低,不然是无法正常工作的。呵呵,不过还是谢谢你。你之前的项目是什么要求呢,是一个接一个收,还是两个都要接受呢? |
|
|
|
|
回帖奖励 +1 分积分
我是新手, 帮顶了。
|
|
|
|
|
回帖奖励 +1 分积分
本帖最后由 一曲说 于 2015-11-26 21:33 编辑
我也碰到了这个问题 一到while(MISO)就没法继续运行了 楼主解决了吗?当我直接把MISO置为0才能继续跑下去程序 |
|
|
|
|
回帖奖励 +1 分积分
最近也在看这个
|
|
|
|
|
回帖奖励 +1 分积分 |
|
|
|
|
|
我是新手, 帮顶了。
|
|
|
|
|
回帖奖励 +1 分积分
海尔集成半导体推出了个芯片型号HW3000,用量巨大,距离有2.5公里双向,与si4463差不多,比si4432 si4438远,比A7108 和A7139好很多,如果是10kpbs,比sx1278 远。LoRa没办法快速率,可了解,推荐!HW3000超低双向无线fsk模块完美替代CC1101、CC1120、A7139、A7108、si4432、si4438、si4463
|
|
|
|
|
回帖奖励 +1 分积分
cc1101好用吗
|
|
|
|
|
回帖奖励 +1 分积分
使用中断,你应该是有标志没清干净。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
物联网工程师必备:怎么选择不同的无线连接技术,本指南帮你忙!
3811 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
4377 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3853 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
4583 浏览 1 评论
21376 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
1600浏览 2评论
9217浏览 2评论
1556浏览 1评论
1968浏览 1评论
885浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 21:29 , Processed in 0.783611 second(s), Total 77, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
8438