关于mini v3.3 spi 1 与 RFID RC522 通信问题

2019-08-17 10:14发布

关于mini v3.3 spi 1 与 RFID RC522 通信问题
//SDA: PA4
//RST: PA3
//CLK: PA5
//MISO: PA6
//MOSI: PA7

void rc522_SPI1_Init(void)       
{
        RCC->APB2ENR|=1<<0;                                //alternate function IO reset
        RCC->APB2ENR|=1<<2;                                //all IO port A reset
        RCC->APB2ENR|=1<<3;                                //all IO port B reset
        RCC->APB2ENR|=1<<12;                          // SPI1 clock enable
       
        GPIOA->CRL&=0X00003FFF;                 //
        GPIOA->CRL|=0XBBB33000;                //PA 4 SDA(CS)3(RST)5(CLK)6(MISO)7(MOSI)  8->B on May 27
        //GPIOA->ODR|=0X7<<5;         //PA5.6.7é&#207;à-

        SPI1->CR1|=0<<10;
        SPI1->CR1|=1<<9;
        SPI1->CR1|=1<<8;  
        SPI1->CR1|=1<<2; //SPI&#214;÷&#187;ú
        SPI1->CR1|=0<<11;//8bitêy&#190;Y&#184;&#241;ê&#189;       
        SPI1->CR1&=~0x02; //&#191;&#213;&#207;D&#196;£ê&#189;&#207;&#194;SCK&#206;a0 CPOL=0
        SPI1->CR1&=~0x01; //êy&#190;Y2é&#209;ù′óμúò&#187;&#184;&#246;ê±&#188;&#228;±&#223;&#209;&#216;&#191;aê&#188;,CPHA=0  
        SPI1->CR1|=7<<3; //Fsck=Fcpu/4  //7 -> 6 on May 27
        SPI1->CR1|=0<<7; //MSBfirst   
        SPI1->CR1|=1<<6; //SPIéè±&#184;ê1&#196;ü
}

spi相关设置如上描述
其中很奇怪的是一开始我用示波器看SCK 一直处在3.3V高电平
将MISO改为复用推挽输出后 居然测到时钟了,时钟正常。这里就很奇怪
接着抓miso来看, 有波形但是基本在3V上下,幅度很小大概在500mv左右,不知道为什么大概八个10一重复。
spi这个几个io口到底应该怎么设置呢?
谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。