Cpu registers STM32F429发现SPI寄存器

Cpu registers STM32F429发现SPI寄存器,cpu-registers,spi,stm32f4discovery,Cpu Registers,Spi,Stm32f4discovery,我正在尝试使用STM32F429发现板以仅传输模式通过SPI与LCD进行通信。但是,每次我写入数据寄存器以进行输出时,我在调试视图(CrossStudio)中都没有看到加载任何内容 int main(无效){ int j; 设置位(RCC->AHB1ENR,(RCC_AHB1ENR_GPIOCEN | RCC_AHB1ENR_GPIOAEN)); 修改注册号(GPIOC->MODER), (GPIO_MODER_MODER10 | GPIO_MODER_MODER12), (GPIO_MODER

我正在尝试使用STM32F429发现板以仅传输模式通过SPI与LCD进行通信。但是,每次我写入数据寄存器以进行输出时,我在调试视图(CrossStudio)中都没有看到加载任何内容

int main(无效){
int j;
设置位(RCC->AHB1ENR,(RCC_AHB1ENR_GPIOCEN | RCC_AHB1ENR_GPIOAEN));
修改注册号(GPIOC->MODER),
(GPIO_MODER_MODER10 | GPIO_MODER_MODER12),
(GPIO_MODER_MODER10_1 | GPIO_MODER_MODER12_1);//设置为备用功能
设置位(GPIOC->OTYPER,(GPIO\U OTYPER\U OT\U 10 | GPIO\U OTYPER\U OT\U 12));//将输出设置为推拉类型
清除_位(GPIOC->PUPDR,(GPIO_PUPDR_PUPDR10 | GPIO_PUPDR_PUPDR12));//禁用推挽电阻器
设置位(GPIOC->OSPEEDR,(GPIO_OSPEEDER_OSPEEDR10 | GPIO_OSPEEDER_OSPEEDR12));//设置高速
/*设置SPI3引脚的备用功能*/
//端口C针脚7-0
GPIOC->AFR[0]=0x00000000;//默认为PTC低阶管脚
//端口C针脚15-8
GPIOC->AFR[1]=0x00066600;//PTC引脚10、11和12用于SPI(AF6=0x6)
//为屏幕设置SS
修改注册表(GPIOA->MODER,GPIO\U MODER\U MODER4,GPIO\U MODER\U MODER4\U 0);
设置_位(GPIOA->BSRRL,0b10000);//设置引脚4高
//为SPI3启用外围时钟
设置位(RCC->APB1ENR,RCC\U APB1ENR\U SPI3EN);
清除位(SPI3->CR1,SPI\U CR1\U CPHA);
清除位(SPI3->CR1,SPI\U CR1\U CPOL);
//设置位(SPI3->CR1,SPI\U CR1\U BIDIMODE);
//设置位(SPI3->CR1,SPI\U CR1\U BIDIOE);
设置位(SPI3->CR1,SPI\U CR1\U SSM)//
设置_位(SPI3->CR1,SPI_CR1_SSI);
设置_位(SPI3->CR1,SPI_CR1_MSTR);//设置主配置
/*TODO:将波特率设置为2MHz(不仅仅是随机预分频器)*/
修改_REG(SPI3->CR1,SPI_CR1_BR,SPI_CR1_BR);//设置为fCLK/256
清除_位(SPI3->CR1,SPI_CR1_LSBFIRST);//首先写出MSB
设置_位(SPI3->CR1,SPI_CR1_SPE);//启用SPI3
transmitData[0]=模式\u清除;
传输数据[1]=0x00;
对于(j=0;j<2;j++){
//TM_SPI_发送(SPI3,传输数据[j]);
SPI3->DR=transmitData[j];//将数据写入数据寄存器
while(!(读取位(SPI3->SR,SPI_SR_TXE));//等待传输完成
while(读取位(SPI3->SR,SPI_SR_BSY));
}
设置_位(GPIOA->BSRRH,0b10000);//将引脚4设置为低位

引脚4是我的芯片选择引脚,我的示波器显示工作正常。我无法从SPI引脚中获得任何信息。

结果是我意外地将输出设置为漏极开路,在需要清除位时使用了设置位

       CLEAR_BIT(GPIOC->OTYPER, (GPIO_OTYPER_OT_10 | GPIO_OTYPER_OT_12)); // Set output to push-pull type
       CLEAR_BIT(GPIOC->OTYPER, (GPIO_OTYPER_OT_10 | GPIO_OTYPER_OT_12)); // Set output to push-pull type