awdd 发表于 2018-11-26 15:23:49

stm32f1 spi3通讯不上,sck波形不对

stm32f1 spi3通讯不上,sck波形不够8字节,求大佬帮忙分析

awdd 发表于 2018-11-26 15:24:39

求大佬分析,为什么sck只有这么点

wenyangzeng 发表于 2018-11-26 16:17:22

本帖最后由 wenyangzeng 于 2018-11-26 18:53 编辑

从上传的代码看,至少楼主没有是能SPI时钟:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3,ENABLE);

stm1024 发表于 2018-11-27 08:17:42

SPI的波特率也没有指定

zjczm 发表于 2018-11-27 12:26:10

先网上找个demo程序来测试一下。

wwwheihei 发表于 2018-11-27 13:50:21

本帖最后由 wwwheihei 于 2018-11-27 13:56 编辑

你看看你采集波形的这个设备能采集得了,你这个spi的时钟吗?我看你那里设置为4分频,你先自己算一下,你spi的时钟多少M?

awdd 发表于 2018-11-29 11:12:39

我是楼主,感谢楼上各位大侠协助,spi的时钟开了,代码没贴全,让各位费心思了,下面是完整代码
GPIO_InitTypeDef GPIO_InitStructure;          
        SPI_InitTypeDef SPI_InitStructure;          


        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//¿ªÆôGPIOABµÄÍâÉèʱÖÓ
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//¿ªÆôAFIOµÄÍâÉèʱÖÓ
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3,ENABLE);//¿ªÆôSPI3µÄÍâÉèʱÖÓ
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
       
        /*ÅäÖÃCS¶Ë¿ÚPA15*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15 ;       //Ñ¡ÔñÒª¿ØÖƵÄGPIOA15Òý½Å

        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//ÉèÖÃÒý½ÅÄ£Ê½ÎªÍÆÍêÊä³ö

        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;           //ÉèÖÃÒý½ÅËÙÂÊΪ50MHz

        GPIO_Init(GPIOA,&GPIO_InitStructure);                       //ÒýÓóõʼ»¯º¯Êý£¬³õʼ»¯GPIOA
       
       
        /*SPI3_MISO--PB4;´øÉÏÀ­ÊäÈë*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4 ;       //Ñ¡ÔñÒª¿ØÖƵÄGPIOB4Òý½Å

        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //ÉèÖÃÒý½ÅģʽΪÉÏÀ­ÊäÈë

        GPIO_Init(GPIOB,&GPIO_InitStructure);                       //ÒýÓóõʼ»¯º¯Êý£¬³õʼ»¯GPIOB
       
       
        /*SPI3_MOSI--PB5;¸´ÓÃÍÆÍìÊä³ö*/

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5 ;       //Ñ¡ÔñÒª¿ØÖƵÄGPIOB5Òý½Å

          GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//ÉèÖÃÒý½ÅģʽΪ¸´ÓÃÍÆÍì

          GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;           //ÉèÖÃÒý½ÅËÙÂÊΪ50MHz

          GPIO_Init(GPIOB,&GPIO_InitStructure);                       //ÒýÓóõʼ»¯º¯Êý£¬³õʼ»¯GPIOB
               
                       
        /*SPI3_SCK--PB3;¸´ÓÃÍÆÍì*/

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3 ;       //Ñ¡ÔñÒª¿ØÖƵÄGPIOB3Òý½Å

          GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//ÉèÖÃÒý½ÅģʽΪ¸´ÓÃÍÆÍì

          GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;           //ÉèÖÃÒý½ÅËÙÂÊΪ50MHz

          GPIO_Init(GPIOB,&GPIO_InitStructure);                       //ÒýÓóõʼ»¯º¯Êý£¬³õʼ»¯GPIOB
               
                       
        /*SPI3_WP--PB6;ÍÆÍì*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6 ;       //Ñ¡ÔñÒª¿ØÖƵÄGPIOB6Òý½Å

        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//ÉèÖÃÒý½ÅÄ£Ê½ÎªÍÆÍêÊä³ö

        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;           //ÉèÖÃÒý½ÅËÙÂÊΪ50MHz

        GPIO_Init(GPIOB,&GPIO_InitStructure);                       //ÒýÓóõʼ»¯º¯Êý£¬³õʼ»¯GPIOB
       
                               
        /*SPI3_HD--PB7;ÍÆÍì*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7 ;       //Ñ¡ÔñÒª¿ØÖƵÄGPIOB7Òý½Å

        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//ÉèÖÃÒý½ÅÄ£Ê½ÎªÍÆÍêÊä³ö

        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;           //ÉèÖÃÒý½ÅËÙÂÊΪ50MHz

        GPIO_Init(GPIOB,&GPIO_InitStructure);                       //ÒýÓóõʼ»¯º¯Êý£¬³õʼ»¯GPIOB



       
SPI_I2S_DeInit(SPI3);
       
        SPI_EEPROM_CS_HIGH();
       
        SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;//Ë«ÏßË«Ïòȫ˫¹¤
        SPI_InitStructure.SPI_Mode = SPI_Mode_Master;//Ö÷SPI
        SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;//8λ֡½á¹¹
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;//ʱÖÓÐü¿Õ¸ß
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//µÚ¶þ¸öʱÖÓÑØ
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;//Èí¼þÑ¡Ôñ
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;//Ô¤·ÖƵϵÊý4
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;//¸ßλÔÚǰ
        SPI_InitStructure.SPI_CRCPolynomial = 7;
        SPI_Init(SPI3,&SPI_InitStructure);
        SPI_Cmd(SPI3,ENABLE);
       


       
}
页: [1]
查看完整版本: stm32f1 spi3通讯不上,sck波形不对