OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3765|回复: 5

使用MDK5仿真SPI没有SCK,程序是战舰的

[复制链接]

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2020-6-4
在线时间
4 小时
发表于 2020-12-17 17:09:51 | 显示全部楼层 |阅读模式
本帖最后由 黑的奶制品 于 2020-12-17 17:16 编辑

使用战舰的开发板,程序是战舰的,用MDK5仿真了一下一个程序的SPI通信,结果只有片选CS可以响应,SPI的时钟SCK却没有变化。
用的SPI2,仿真图情况如图。运行了一条SPI写语句。
小白一个,有没有大佬能帮我看看是什么问题。
QQ截图20201217171330.png
这个写函数应该是对的吧:
void SPI_Writebyte32(u32 Dat)
  {
       unsigned char i;
  TDC_SSN(OFF);
  //Delay(1);
  for (i=0; i<32; i++)  
  {   
   TDC_SCK(ON);
   //Delay(1);
   if (Dat&0x80000000)
    TDC_MOSI(ON);  
   else
     TDC_MOSI(OFF);
   //Delay(1);
   TDC_SCK(OFF);
   //Delay(1);
   Dat = Dat<<1;
  }
  //Delay(1);
  TDC_SSN(ON);
  //Delay(1);
}


SPI2的配置程序如下:

void SPI2_Init(void)
{
        SPI_InitTypeDef SPI_InitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD , ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);  //SPI2ê±&#214;óê1&#196;ü
        
        // SPI2_SSN
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
  GPIO_Init(GPIOB, &GPIO_InitStructure); // SPI2 - PB12 SSN


//  SPI2_SCK
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
  GPIO_Init(GPIOB, &GPIO_InitStructure);      // SPI2 - PB13 SCK

//   SPI2_MISO
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
  GPIO_Init(GPIOB, &GPIO_InitStructure);// SPI2 - PB14 MISO


//   SPI2_MOSI
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
  GPIO_Init(GPIOB, &GPIO_InitStructure); // SPI2 - PB15 MOSI


        SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
        SPI_InitStructure.SPI_Mode = SPI_Mode_Master;               
        SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;               
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;               
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;        
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;               
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;               
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;        
        SPI_InitStructure.SPI_CRCPolynomial = 7;        
        SPI_Init(SPI2, &SPI_InitStructure);

        SPI_Cmd(SPI2, ENABLE);
         
  SPI_SSOutputCmd (SPI2,ENABLE);   

  GPIO_SetBits(GPIOB,GPIO_Pin_12);
        
        GPIO_SetBits(GPIOB,GPIO_Pin_14);
        GPIO_SetBits(GPIOB,GPIO_Pin_15);
        
        
        GPIO_ResetBits(GPIOB,GPIO_Pin_13);


}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2017-2-13
在线时间
125 小时
发表于 2020-12-18 09:23:10 | 显示全部楼层
既然用了模拟spi就不需要初始化硬件spi
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2020-6-4
在线时间
4 小时
 楼主| 发表于 2020-12-18 19:53:52 | 显示全部楼层
492393275 发表于 2020-12-18 09:23
既然用了模拟spi就不需要初始化硬件spi

你好,我今天试了一下这个程序,用示波器观测SPI,但是SPI一直都没有SCK,有片选CS。是我配置的问题吗?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2020-6-4
在线时间
4 小时
 楼主| 发表于 2020-12-18 19:55:23 | 显示全部楼层
492393275 发表于 2020-12-18 09:23
既然用了模拟spi就不需要初始化硬件spi

就是用的战舰的板子,直接把示波器接板子引出的PB13的IO口,没有时钟波形。
回复 支持 反对

使用道具 举报

0

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2017-2-13
在线时间
125 小时
发表于 2020-12-21 09:17:51 | 显示全部楼层
黑的奶制品 发表于 2020-12-18 19:55
就是用的战舰的板子,直接把示波器接板子引出的PB13的IO口,没有时钟波形。

了解一下什么是硬件spi什么是模拟spi再说吧
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2018-12-5
在线时间
39 小时
发表于 2021-1-7 15:40:25 | 显示全部楼层
记得看过这一说法,MDK逻辑分析仪功能不支持STMF407。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-30 20:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表