完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
主控芯片STM32L151,利用SPI驱动lora模块,现在发现不触发中断,下边先是配置引脚
GPIO_InitTypeDef GPIO_InitStructure; __HAL_RCC_GPIOB_CLK_ENABLE( );GPIO_InitStructure.Pin = GPIO_PIN_4; ///DIO1 PB4GPIO_InitStructure.Pull = GPIO_NOPULL;GPIO_InitStructure.Mode = GPIO_MODE_IT_RISING;GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;HAL_GPIO_Init(GPIOB, GPIO_InitStructure ); HAL_NVIC_SetPriority(EXti4_IRQn, 10, 0);HAL_NVIC_EnableIRQ(EXTI0_IRQn); /DIO0引脚中断/void EXTI4_IRQHandler(void){printf("0rn");uint16_t irqRegs; if(HAL_GPIO_EXTI_GET_IT(GPIO_PIN_4) != RESET){printf("0-1rn");HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_4); irqRegs = SX126xGetIrqStatus( );SX126xClearIrqStatus( IRQ_RADIO_ALL );printf("0-2rn");if( ( irqRegs IRQ_TX_DONE ) == IRQ_TX_DONE ){//!< Update operating mode state to a value lower than ref MODE_STDBY_XOSCSX126xSetOperatingMode( MODE_STDBY_RC );LoraTxDoneCallback();printf("1");} if( ( irqRegs IRQ_RX_DONE ) == IRQ_RX_DONE ){ if( RxContinuous == false ) { ///!< Update operating mode state to a value lower than ref MODE_STDBY_XOSC SX126xSetOperatingMode( MODE_STDBY_RC ); /// WORKAROUND - Implicit Header Mode Timeout Behavior, see DS_SX1261-2_V1.2 datasheet chapter 15.3 /// RegRtcControl = @address 0x0902 SX126xWriteRegister( 0x0902, 0x00 ); /// RegEventMask = @address 0x0944 SX126xWriteRegister( 0x0944, SX126xReadRegister( 0x0944 ) | ( 1 << 1 ) ); /// WORKAROUND END } SX126xGetPayload( RadioRxPayload, Radiosize , 255 ); SX126xGetPacketStatus( RadioPktStatus ); LoraRxDoneCallback(); printf("2");}if( ( irqRegs IRQ_CRC_ERROR ) == IRQ_CRC_ERROR ){ if( RxContinuous == false ) { //!< Update operating mode state to a value lower than ref MODE_STDBY_XOSC SX126xSetOperatingMode( MODE_STDBY_RC ); } LoraRxErrorCallback(); printf("3");}if( ( irqRegs IRQ_CAD_DONE ) == IRQ_CAD_DONE ){ //!< Update operating mode state to a value lower than ref MODE_STDBY_XOSC SX126xSetOperatingMode( MODE_STDBY_RC ); LoraCadDoneCallback(); printf("4");}if( ( irqRegs IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ){ if( SX126xGetOperatingMode( ) == MODE_TX ) { SX126xSetOperatingMode( MODE_STDBY_RC ); LoraTxTimeoutCallback( ); printf("5"); } else if( SX126xGetOperatingMode( ) == MODE_RX ) { SX126xSetOperatingMode( MODE_STDBY_RC ); LoraRxTimeoutCallback( ); printf("6"); }}if( ( irqRegs IRQ_HEADER_ERROR ) == IRQ_HEADER_ERROR ){ if( RxContinuous == false ) { //!< Update operating mode state to a value lower than ref MODE_STDBY_XOSC SX126xSetOperatingMode( MODE_STDBY_RC ); } LoraRxTimeoutCallback( ); printf("7");}}} 可能是那些原因呢,有什么排除办法 |
|
相关推荐
1个回答
|
|
手动测试一下中断,也就是自己模拟一个信号,看看是否正常执行。
另外cube库的架构通过回调函数来在中断里添加自己的程序,尽量遵循CUBE库的架构,改变很可能会引起意想不到的问题 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1683 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1582 浏览 1 评论
1013 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
703 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1627 浏览 2 评论
1892浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
675浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
538浏览 3评论
557浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
526浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 01:29 , Processed in 0.761230 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号