完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我们现在用STM32L051来设计一款变送器模块。4~20mA 接口。MCU通过ADC(SPI接口) 采集传感器输出 的信号。因为我们要求ADC的采样率达到50ksps,因此对Mcu的运行效率有非常高的要求,因此官网的HAL库就满足不了(已经试过了),必须用直接操作寄存器的方式来进行。但是SPI接口配置后,启动ADC采集,ADC也输出数据,但是MCU 的SPI接口接收中断标志位就是不置位(RXNE)。不知道什么原因啊。
[td]void MX_SPI2_Config(void) { /* Enable the peripheral clock SPI2 */ RCC->APB1ENR |= RCC_APB1ENR_SPI2EN; /* DISABLE TXE IT */ SPI2->CR2 = ~(SPI_CR2_TXEIE | SPI_CR2_ERRIE | SPI_CR2_FRF | SPI_CR2_SSOE | SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); /* MASTER MODE, SCK IDLE HIGH */ SPI2->CR1 = SPI_CR1_MSTR | SPI_CR1_CPOL; /* NSS SOFT */ SPI2->CR1 |= SPI_CR1_SSM | SPI_CR1_SSI; /* RXNE IT */ SPI2->CR2 |= SPI_CR2_RXNEIE; /* 16 bit frame mode */ SPI2->CR1 |= SPI_CR1_DFF; /* Enable SPI2 */ SPI2->CR1 |= SPI_CR1_SPE; /* Configure IT */ /* Set priority for SPI2_IRQn */ NVIC_SetPriority(SPI2_IRQn, 5); /* Enable SPI2_IRQn */ NVIC_EnableIRQ(SPI2_IRQn); } |
|
相关推荐
1个回答
|
|
在设计STM32L051变送器模块时,如果SPI接口接收中断标志位(RXNE)不置位,可能有以下几个原因:
1. SPI配置问题:请检查SPI的配置是否正确,包括时钟极性(CPOL)、时钟相位(CPHA)、数据位(DFF)、主/从模式(MSTR)等。确保SPI配置与ADC的SPI接口兼容。 2. 中断使能:确保在SPI配置中启用了接收中断。在HAL库中,可以使用以下代码启用SPI接收中断: ```c HAL_SPI_Start_Receive(&hspi2, (uint8_t*)rxBuffer, size, HAL_MAX_DELAY); ``` 3. 中断优先级配置:检查SPI中断的优先级是否正确配置。在NVIC中设置SPI中断的优先级,确保在中断服务例程(ISR)中正确处理SPI中断。 4. ADC时钟配置:确保ADC的时钟配置正确,以满足50ksps的采样率要求。在STM32L051中,可以使用PLL或HSI作为ADC的时钟源。 5. ADC配置:检查ADC的配置,包括采样时间、分辨率等。确保ADC配置与SPI接口兼容。 6. SPI中断服务例程(ISR):确保在ISR中正确处理SPI中断。在HAL库中,可以使用以下代码处理SPI接收中断: ```c void SPI2_IRQHandler(void) { HAL_SPI_IRQHandler(&hspi2); } ``` 7. 硬件问题:如果以上步骤都无法解决问题,可能存在硬件问题,如SPI接口的引脚连接、电源供应等。请检查硬件连接是否正确。 8. 软件问题:如果硬件连接正确,可能是软件问题。尝试使用不同的SPI库或示例代码,以排除软件问题。 综上所述,要解决SPI接口接收中断标志位不置位的问题,需要从SPI配置、中断使能、中断优先级配置、ADC时钟配置、ADC配置、SPI中断服务例程(ISR)等方面进行排查。同时,检查硬件连接和软件实现,确保SPI接口与ADC的SPI接口兼容。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1777 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1080 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1678 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
595浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 12:59 , Processed in 0.818256 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191