你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
awdd 提问时间:2018-11-26 15:23 /
stm32f1 spi3通讯不上,sck波形不够8字节,求大佬帮忙分析
SPI_SCK.jpg
源码1.jpg
源码2.jpg
源码3.jpg
源码4.jpg
源码5.jpg
收藏 评论6 发布时间:2018-11-26 15:23

举报

6个回答
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);
       


       
}
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);

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

STM1024 回答时间:2018-11-27 08:17:42
SPI的波特率也没有指定

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

zjczm 回答时间:2018-11-27 12:26:10
先网上找个demo程序来测试一下。

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

ssssss 回答时间:2018-11-27 13:50:21
本帖最后由 wwwheihei 于 2018-11-27 13:56 编辑

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

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版