最近用STM32F013RCT6调试NRF24L01模块,总共三路SPI,连接3个2.4G模块。
SPI1和SPI2没有问题,check能通过。
相同的方法配置SPI3,check不能通过。
检查多遍管脚配置和接线线序,都没有问题,由于SPI3管脚会复用JTAG仿真接口,所以把焦点集中在这一块,按照要求将 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE) 添加到程序中,依旧不起作用。
查手册发现当需要重新配置IO口时,需要开启AFIO时钟。
所以配置时为如下指令:
1、使能AFIO时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE)。
2、调用重映射函数,关闭JTAG,开启SWD:GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE)。
添加好这两条指令,SPI3配置完成。2.4G模块check通过。
最近用STM32F013RCT6调试NRF24L01模块,总共三路SPI,连接3个2.4G模块。
SPI1和SPI2没有问题,check能通过。
相同的方法配置SPI3,check不能通过。
检查多遍管脚配置和接线线序,都没有问题,由于SPI3管脚会复用JTAG仿真接口,所以把焦点集中在这一块,按照要求将 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE) 添加到程序中,依旧不起作用。
查手册发现当需要重新配置IO口时,需要开启AFIO时钟。
所以配置时为如下指令:
1、使能AFIO时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE)。
2、调用重映射函数,关闭JTAG,开启SWD:GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE)。
添加好这两条指令,SPI3配置完成。2.4G模块check通过。
举报