miracle533 发表于 2018-3-26 17:38:36

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

本帖最后由 miracle533 于 2018-3-31 08:24 编辑


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

toofree 发表于 2018-3-27 00:55:33

楼主始终没出现STM32或MCU字样,只有两个NRF24L01怎么玩,得有CPU控制吧。
把你的想法画个图吧。

miracle533 发表于 2018-3-27 08:23:17

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

你好,,用的是2个F103C8T6的最小系统

bargagebaobei 发表于 2018-3-27 12:49:14

当然可行就看你进入什么模式下了

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
当然可行就看你进入什么模式下了
时钟已经在别的函数里打开
/* CE(PB10) IRQ(PB11) CS(PB12) SCK(PB13) SPI_MISO(PB14)SPI_MOSI(PB15)      */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//普通输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化PG6,7

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


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化PB14

miracle533 发表于 2018-3-27 19:14:22

miracle533 发表于 2018-3-27 19:06
时钟已经在别的函数里打开

        EXTI_InitTypeDef EXTI_InitStructure;
       
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource11);
       
        EXTI_InitStructure.EXTI_Line=EXTI_Line11;                            //使能外部中断线5
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;                      //外部中断
        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;             //下降沿触发       
        EXTI_InitStructure.EXTI_LineCmd = ENABLE;                           //中断线使能
        EXTI_Init(&EXTI_InitStructure);       

miracle533 发表于 2018-3-27 19:14:43

miracle533 发表于 2018-3-27 19:14


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 ...

void EXTI15_10_Handler()
{
    SystemInit();
    printf("22243436554");
    EXTI_ClearITPendingBit(EXTI_Line11);
}

miracle533 发表于 2018-3-29 19:27:00

捞一捞
页: [1] 2
查看完整版本: 关于使用NRF24L01能不能通过中断唤醒的问题