请教:STM32H743的SPI通讯问题,时钟数量一直是32个时钟?

2019-07-20 06:02发布


寄存器设置如下:


/******************************SPI2初始化******************************************/
void SPI2_init(void)
{
        RCC->APB1LENR |= 1<<14;          //使能SPI2时钟,APB1=


        SPI2->CR1 = 0x0000;          //SPI禁止
        delay_ms(1);
        SPI2->CR1 |= (1<<12);  //SSI bit has an effect only when the SSM bit is set
        delay_ms(1);
        SPI2->CFG1 = (3<<28)|(15<<16)|(15<<0);   //16位数据,波特率=SPI master clock/16
        delay_ms(1);
        SPI2->CFG2 = (1<<26)|(0<<25)|(0<<24)|(0<<23)|(1<<22)|(0<<17);  //SSM置位,SCK空闲低,第1个时钟沿开始采样,先发MSB,Master,
        delay_ms(1);
        SPI2->CR1  |= 1; //使能SPI
        delay_ms(1);
        SPI2->CR1 |= (1<<9);//CSTART置位, CSTART can be set only when SPE=1 and MASTER=1.
        delay_ms(1);       
}





主函数调用程序如下:


                CSN_CLC;               
                while((SPI2->SR & 2)==0);
                SPI2->TXDR=0x5511;
                while((SPI2->SR & 1)==0);
                SPI1->RXDR;
                CSN_SET;





只是测试,没有接任何外设,发现SPI2的MOSI能正常发出数据,但是SCK发出时钟数为32个,更改SPI2->CFG1 的DSIZE设置不起作用,一直输出32个周期的时钟,这是怎么回事呢?调了一天,快崩溃了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-20 08:53
 精彩回答 2  元偷偷看……
gdupc
2楼-- · 2019-07-20 13:44
正点原子 发表于 2018-9-17 02:19
用给我们例程试试。

好的,原子哥,你们带spi的例程在哪下载?我下载了,里面没有spi例程
mhsdsa
3楼-- · 2019-07-20 15:57
这个非常不错,谢谢
正点原子
4楼-- · 2019-07-20 21:31
 精彩回答 2  元偷偷看……
gdupc
5楼-- · 2019-07-21 02:18
正点原子 发表于 2018-9-18 02:19
H743开发板的例程啊

找到了,多谢
niuyasong
6楼-- · 2019-07-21 06:54
gdupc 发表于 2018-9-20 21:52
找到了,多谢

你好:
我也没找到SPI的例程,能给我一个网址吗。

一周热门 更多>