你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于使用NRF24L01能不能通过中断唤醒的问题

[复制链接]
miracle533 提问时间:2018-3-26 17:38 /
本帖最后由 miracle533 于 2018-3-31 08:24 编辑

LZ想用2个NRF24L01模块,发送端发送数据,使接收端进入停机模式。
问题是在停机模式下,我想用发送端发送数据,接收端接收数据后,从停机模式下唤醒;我将接收端的MOSI(复用推挽输出)引脚挂在了中断线上,发送数据后(设置的上拉或下拉进入中断函数)都不能进入中断,更别说唤醒了。想问一下理论上这么做行不行。。
收藏 评论10 发布时间:2018-3-26 17:38

举报

10个回答
七哥 回答时间:2018-3-27 00:55:33
楼主始终没出现STM32或MCU字样,只有两个NRF24L01怎么玩,得有CPU控制吧。
把你的想法画个图吧。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

miracle533 回答时间:2018-3-27 08:23:17
toofree 发表于 2018-3-27 00:55
楼主始终没出现STM32或MCU字样,只有两个NRF24L01怎么玩,得有CPU控制吧。
把你的想法画个图吧。 ...

你好,,用的是2个F103C8T6的最小系统
琦子 回答时间:2018-3-27 12:49:14
当然可行  就看你进入什么模式下了 001xzemJty6EwsVWry3eb&690.jpg

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

miracle533 回答时间:2018-3-27 18:50:26
bargagebaobei 发表于 2018-3-27 12:49
当然可行  就看你进入什么模式下了

你好 我进入的是停机模式,试了还是不可以
miracle533 回答时间:2018-3-27 19:06:03
本帖最后由 miracle533 于 2018-3-27 19:14 编辑
bargagebaobei 发表于 2018-3-27 12:49
当然可行  就看你进入什么模式下了

时钟已经在别的函数里打开
  1. /* CE(PB10) IRQ(PB11) CS(PB12) SCK(PB13) SPI_MISO(PB14)  SPI_MOSI(PB15)        */
  2. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  3. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//普通输出模式
  4. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
  5. GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化PG6,7

  6. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
  7. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;//普通输出模式
  8. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
  9. GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化PG6,7


  10. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
  11. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//
  12. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
  13. GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化PB14  
复制代码
miracle533 回答时间:2018-3-27 19:14:22
miracle533 发表于 2018-3-27 19:06
时钟已经在别的函数里打开
  1.         EXTI_InitTypeDef EXTI_InitStructure;
  2.        
  3.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource11);
  4.        
  5.         EXTI_InitStructure.EXTI_Line=EXTI_Line11;                            //使能外部中断线5
  6.         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;                        //外部中断
  7.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;             //下降沿触发       
  8.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;                           //中断线使能
  9.         EXTI_Init(&EXTI_InitStructure);       
复制代码
miracle533 回答时间:2018-3-27 19:14:43

NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;        //串口中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;          //抢占优先级0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;             //子优先级为0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;     //使能
NVIC_Init(&NVIC_InitStructure);
miracle533 回答时间:2018-3-27 19:14:59
miracle533 发表于 2018-3-27 19:14
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;        //串口中断
NVIC_InitStructure.NVIC_IR ...
  1. void EXTI15_10_Handler()
  2. {
  3.     SystemInit();
  4.     printf("22243436554");
  5.     EXTI_ClearITPendingBit(EXTI_Line11);
  6. }
复制代码
miracle533 回答时间:2018-3-29 19:27:00
捞一捞
miracle533 回答时间:2018-3-31 08:23:58
发射端一直在发射数据,接收端接收到数据后会判断接收到的数据是否符合条件,但是不管符不符合,只要接受到数据就会进入中断函数;我是先更改发射端的频道,想发射正确的数据时再改变发射端的频道。这样就可以唤醒了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版