STM32F407VG发现SPI中断循环错误

问题描述

一个非常简单的代码,如下所示。

当我在调试模式下运行时,它保持在无限循环中。 enter image description here

当我查看调试器控制台时;我看到了 WWDG_IRQHandler () 中断。但这里没有削减。为什么会导致这样的错误?会不会是寄存器地址分配有冲突?因为我无法以任何方式前进。 enter image description here

 /*
  * PB12 ---> SPI2_NSS
  * PB13 ---> SPI2_SCLK
  * PB14 ---> SPI2_MISO
  * PB15    ---> SPI2_MOSI
  * Alt fucn. Mode = 5
  */

   #include "stm32f407xx.h"
   #include "string.h"

 void SPI2_GPIO_Init(void)

 {

GPIO_Handle_t SPIPins;

SPIPins.pGPIOx  =GPIOB;
SPIPins.GPIO_PinConfig.GPIO_PinMode         = GPIO_MODE_ALTFN;
SPIPins.GPIO_PinConfig.GPIO_PinAltFunModer  = 5;
SPIPins.GPIO_PinConfig.GPIO_PinopType       = GPIO_OP_PP;
SPIPins.GPIO_PinConfig.GPIO_PinPuPdControl  = GPIO_NO_PUPD;
SPIPins.GPIO_PinConfig.GPIO_PinSpeed        = GPIO_SPEED_FAST;

GPIO_PeripheralClockControl(GPIOB,ENABLE);

//SPI2_SCLK
SPIPins.GPIO_PinConfig.GPIO_PinNumber       = GPIO_PIN_NO_13;
GPIO_Init(&SPIPins);

//MOSI
SPIPins.GPIO_PinConfig.GPIO_PinNumber       = GPIO_PIN_NO_15;
GPIO_Init(&SPIPins);

//MISO
//SPIPins.GPIO_PinConfig.GPIO_PinNumber     = GPIO_PIN_NO_14;
//GPIO_Init(&SPIPins);

//NSS
//SPIPins.GPIO_PinConfig.GPIO_PinNumber     = GPIO_PIN_NO_12;
//GPIO_Init(&SPIPins);

 }

 void SPI2_Init()
 {
SPI_Handle_t  SPI2Handle;
SPI2Handle.pSPIx =SPI2;
SPI2Handle.SPI_Config.SPI_BusConfig     =SPI_BUS_CONfig_FD;
SPI2Handle.SPI_Config.SPI_DeviceMode    =SPI_DEVICE_MODE_MASTER;
SPI2Handle.SPI_Config.SPI_SclkSpeed     =SPI_SCLK_SPEED_DIV2;       //8mhz
SPI2Handle.SPI_Config.SPI_DFF           =SPI_DFF_8Bits;
SPI2Handle.SPI_Config.SPI_CPOL          =SPI_CPOL_LOW;
SPI2Handle.SPI_Config.SPI_CPHA          =SPI_CPHA_LOW;
SPI2Handle.SPI_Config.SPI_SSM           =SPI_SSM_EN;

SPI_PeripheralClockControl(SPI2,ENABLE);

SPI2_Init(&SPI2Handle);

 }





 int main(void)
 {
    char user_data[] = "Hello World";

    SPI2_GPIO_Init();
    SPI2_Init();
    SPI_SendData(SPI2,(uint8_t*) user_data,strlen(user_data));





while(1);
return 0 ;
 }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)