|
MOSI和SCK测出来都是浮空的 但如果模式改为输出的话又正常 实在想不出哪有问题了 RCC->AHB2ENR|=RCC_AHB2ENR_GPIOAEN;//GPIOA ENABLE RCC->AHB2RSTR|=0x1<<RCC_AHB2RSTR_GPIOARST_Pos;//GPIOA RST RCC->AHB2RSTR&=~(0x1<<RCC_AHB2RSTR_GPIOARST_Pos); //MODE AF GPIOA->MODER&=~(0x3<<GPIO_MODER_MODE5_Pos); GPIOA->MODER&=~(0x3<<GPIO_MODER_MODE7_Pos); GPIOA->MODER|=0x2<<GPIO_MODER_MODE5_Pos; GPIOA->MODER|=0x2<<GPIO_MODER_MODE7_Pos; //OUT PUT TYPE PP GPIOA->OTYPER&=~(0x1<<(GPIO_OTYPER_OT5_Pos)); GPIOA->OTYPER&=~(0x1<<(GPIO_OTYPER_OT7_Pos)); GPIOA->OTYPER|=0x0<<(GPIO_OTYPER_OT5_Pos); GPIOA->OTYPER|=0x0<<(GPIO_OTYPER_OT7_Pos); //SPEED VERY HIGH GPIOA->OSPEEDR&=~(0x3<<(GPIO_OSPEEDR_OSPEED5_Pos)); GPIOA->OSPEEDR&=~(0x3<<(GPIO_OSPEEDR_OSPEED7_Pos)); GPIOA->OSPEEDR|=0x3<<(GPIO_OSPEEDR_OSPEED5_Pos); GPIOA->OSPEEDR|=0x3<<(GPIO_OSPEEDR_OSPEED7_Pos); //NO PULL GPIOA->PUPDR&=~(0x3<<(GPIO_PUPDR_PUPD5_Pos)); GPIOA->PUPDR&=~(0x3<<(GPIO_PUPDR_PUPD7_Pos)); GPIOA->PUPDR|=0x0<<(GPIO_PUPDR_PUPD5_Pos); GPIOA->PUPDR|=0x0<<(GPIO_PUPDR_PUPD7_Pos); //AF config GPIOA->AFR[0]&=~(0xF<<GPIO_AFRL_AFSEL5_Pos); GPIOA->AFR[0]&=~(0xF<<GPIO_AFRL_AFSEL7_Pos); GPIOA->AFR[0]|=0x5<<GPIO_AFRL_AFSEL5_Pos; GPIOA->AFR[0]|=0x5<<GPIO_AFRL_AFSEL7_Pos; //SPI_INIT RCC->APB2ENR |= 0x1<<RCC_APB2ENR_SPI1EN_Pos;//Enable SPI1 RCC->APB2RSTR|=0x1<<RCC_APB2RSTR_SPI1RST_Pos;//SPI1 RST RCC->APB2RSTR&=~(0x1<<RCC_APB2RSTR_SPI1RST_Pos); SPI1->CR1=0x00000000;//Clear the register SPI1->CR2=0x00000000;//Clear the register SPI1->CR1|=0x0<<SPI_CR1_BIDIMODE_Pos;//2 Line Mode SPI1->CR1|=0x1<<SPI_CR1_BIDIOE_Pos;//transmit-only mode SPI1->CR1|=0x0<<SPI_CR1_CRCEN_Pos;//disable CRC SPI1->CR1|=0x1<<SPI_CR1_SSM_Pos;//Software slave management enabled SPI1->CR1|=0x0<<SPI_CR1_LSBFIRST_Pos;// transmitted / received with the MSB first SPI1->CR1|=0x0<<SPI_CR1_BR_Pos;//Speed = APB2CLK/2^(BR+1) SPI1->CR1|=0x1<<SPI_CR1_MSTR_Pos;//Master Mode SPI1->CR1|=0x0<<SPI_CR1_CPOL_Pos; SPI1->CR1|=0x0<<SPI_CR1_CPHA_Pos; SPI1->CR2|=0x7<<SPI_CR2_DS_Pos;//Data length 8 bits SPI1->CR2|=0x0<<SPI_CR2_FRF_Pos;//Motorola mode SPI1->CR1|=0x1<<SPI_CR1_SPE_Pos;;//SPI ENABLE |
fdcan通信内部回环正常,换成正常模式收不到数据
G474的opamp失效症状。有大佬遇到相同的症状吗
STM32G474RBT6使用Keil工程通过仿真器下载程序时,程序量超过64K时,就会下载失败,求教。
Motor Control Workbench六步算法显示硬件不支持电流检测,同一套硬件FOC算法就显示支持;硬件为B-G431B-ESC1
STM32G474VET6如何配置HRTIM的中心对齐模式
STM32G474RBT6芯片,hal库默认设置为双bank模式,怎样修改为单bnak模式?使用STM32CubeMX工具生成工程时,只能选双bank模式,不能选单bank模式!
STM32G474 HRTIM 推挽模式下 关闭死区 在比较寄存器较小的情况下,存在输出脉宽直接到100%
最近在做单极倍频SPWM
stm32G474RBT3的flash擦除寿命是多少?
stm32g431rbt怎么显示汉字
微信公众号
手机版
建议你使用ST提供的库函数跑跑例程感受下,然后使用CubeMx进行配置创建工程进行调试。
\Repository\STM32Cube_FW_G4_V1.5.1\Projects\NUCLEO-G431RB\Examples\SPI
找到问题了,是复用寄存器AFR填错了
还有CR2的SSOE没配,默认多主机是浮空的原因
[md]呵呵~!
你都是高手。
你这样按位自己来逐个填,真不容易!