Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使用SPI(stm32h743)进行传输。配置问题_Stm32_Spi - Fatal编程技术网

Can';t使用SPI(stm32h743)进行传输。配置问题

Can';t使用SPI(stm32h743)进行传输。配置问题,stm32,spi,Stm32,Spi,我试图为spi通信编写stm32h743代码,但似乎无法传输。我使用PA5作为SCK,PD7作为MOSI。我阅读了参考手册(49.4.9)中要求的程序,并编写了下面的代码,但它不传输0x3(用示波器检查) RCC->AHB4ENR |=RCC_AHB4ENR_GPIOAEN;//gpio A、B、D的时钟启用 RCC->AHB4ENR |=RCC_AHB4ENR|u GPIODEN; RCC->AHB4ENR |=RCC_AHB4ENR_GPIOBEN; RCC->APB2ENR |=RCC_A

我试图为spi通信编写stm32h743代码,但似乎无法传输。我使用PA5作为SCK,PD7作为MOSI。我阅读了参考手册(49.4.9)中要求的程序,并编写了下面的代码,但它不传输0x3(用示波器检查)

RCC->AHB4ENR |=RCC_AHB4ENR_GPIOAEN;//gpio A、B、D的时钟启用
RCC->AHB4ENR |=RCC_AHB4ENR|u GPIODEN;
RCC->AHB4ENR |=RCC_AHB4ENR_GPIOBEN;
RCC->APB2ENR |=RCC_APB2ENR_SPI1EN;//启用SPI时钟
GPIOA->MODER&=~GPIO\u MODER\u MODER5;//为gpioa和d启用备用功能
GPIOA->MODER |=GPIO_MODER_MODER5_1;//0b10用于备用功能(引脚5)

GPIOA->AFR[0]|=(0x05不使用幻数。STM提供的CMSIS头文件中有人类可读的定义。现在请不要浪费我们的时间。还有一些错误
&=~(0xF我在询问是否缺少任何其他配置(即缺少任何其他步骤?)。我已为“幻数”添加了解释你应该期望他们是正确的,因为我在发帖前仔细检查过。所以不要期望任何帮助。尊重我们的时间。用人类可读的符号重写问题-然后我们可以帮助。重写错误的按位操作,因为他们做的事情与你想的不同。什么是人类可读的符号?十六进制数字?我不明白为什么你帮不上忙,我觉得我是在讲道理。
DMA1\u Channel1->CCR=DMA\u CCR\u MINC | DMA\u CCR\u TCIE | DMA\u CCR\u EN |(0b10
    RCC->AHB4ENR |= RCC_AHB4ENR_GPIOAEN;   // clock enable for gpio A,B,D
    RCC->AHB4ENR |= RCC_AHB4ENR_GPIODEN;          
    RCC->AHB4ENR |= RCC_AHB4ENR_GPIOBEN;
    RCC->APB2ENR |= RCC_APB2ENR_SPI1EN;   // enable SPI clock

    GPIOA->MODER &= ~GPIO_MODER_MODER5;   // enable alternate functions for gpioa and d
    GPIOA->MODER |= GPIO_MODER_MODER5_1;  // 0b10 for alternate function, (PIN5)
    GPIOA->AFR[0] |= (0x05 << 5 * 4);      //  AF5 for SPI which is 0101 (it's a 4bit variation)

    GPIOA->MODER &= ~GPIO_MODER_MODER6;  // PIN6
    GPIOA->MODER |= GPIO_MODER_MODER6_1;
    GPIOA->AFR[0] |= (0x05 << 6 * 4);

   GPIOD->MODER &= ~GPIO_MODER_MODER7;  // PIN7
   GPIOD->MODER |= GPIO_MODER_MODER7_1;
   GPIOD->AFR[0] |= (0x05 << 7 * 4);

   SPI1->CFG1=(7u << SPI_CFG1_DSIZE_Pos);  // 8bit data size
   SPI1->CFG2|=SPI_CFG2_MASTER ;  // master mode
   SPI1->CR1|=SPI_CR1_SPE;           // spi enable
   SPI1->CR1|=SPI_CR1_CSTART;        // transfer start
 *(volatile uint8_t *)&SPI1->TXDR = 0x3;