OpenEdv-开源电子网

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

STM32H743 SPI 时钟无输出

[复制链接]

5

主题

15

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-5-7
在线时间
15 小时
发表于 2019-6-4 19:05:50 | 显示全部楼层 |阅读模式
10金钱
怀疑配置有问题 但是又找不到问题在哪  用的SPI2    大佬们有H743  相关SPI配置的例程嘛   SPI配置部分源码如下: SCSI0 SCLKI1 MISOI2 MOSII3 INTH15或PH2  RSTH14
CS 信号测了下在读写时候是有拉低的, 但是 SCLK MISO MOSI 三个信号线都没有输出
SPI_HandleTypeDef SPI1_Handler;
void SPI_Configuration(void)
{
               
                SPI1_Handler.Instance=SPI2;                       
    SPI1_Handler.Init.Mode=SPI_MODE_MASTER;            
    SPI1_Handler.Init.Direction=SPI_DIRECTION_2LINES;   
    SPI1_Handler.Init.DataSize=SPI_DATASIZE_8BIT;     
    SPI1_Handler.Init.CLKPolarity=SPI_POLARITY_LOW;
    SPI1_Handler.Init.CLKPhase=SPI_PHASE_1EDGE;      
    SPI1_Handler.Init.NSS=SPI_NSS_SOFT;               
    SPI1_Handler.Init.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2;
    SPI1_Handler.Init.FirstBit=SPI_FIRSTBIT_MSB;        
    SPI1_Handler.Init.TIMode=SPI_TIMODE_DISABLE;        
    SPI1_Handler.Init.CRCCalculation=SPI_CRCCALCULATION_DISABLE;
    SPI1_Handler.Init.CRCPolynomial=7;               
    HAL_SPI_Init(&SPI1_Handler);
   
    __HAL_SPI_ENABLE(&SPI1_Handler);                  
       
    SPI1_ReadWriteByte(0x00);                       
}



void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
{
    GPIO_InitTypeDef GPIO_Initure;

    __HAL_RCC_GPIOI_CLK_ENABLE();       //ê1ÄüGPIOAê±Öó
    __HAL_RCC_SPI2_CLK_ENABLE();        //ê1ÄüSPI1ê±Öó

    //PA5,6,7
    GPIO_Initure.Pin=GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3;
    GPIO_Initure.Mode=GPIO_MODE_AF_PP;              //¸′óÃíÆíìêä3ö
    GPIO_Initure.Pull=GPIO_PULLUP;                  //éÏà-
    GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;             //¿ìËù            
    HAL_GPIO_Init(GPIOI,&GPIO_Initure);
}


void W5500_GPIO_Configuration(void)
{
        GPIO_InitTypeDef  GPIO_Initure;;               //¿aÆôGPIOAê±Öó
    __HAL_RCC_GPIOI_CLK_ENABLE();               //¿aÆôGPIOCê±Öó
          __HAL_RCC_GPIOH_CLK_ENABLE();
       
        /* W5500_RSTòy½Å3õê¼»ˉÅäÖÃ(PC5) */
        GPIO_Initure.Pin  = W5500_RST;
        GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;
        GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP;
        GPIO_Initure.Pull=GPIO_PULLUP;                  //éÏà-
        HAL_GPIO_Init(W5500_RST_PORT, &GPIO_Initure);
        HAL_GPIO_WritePin(W5500_RST_PORT,W5500_RST,1);


       
        /* 3õê¼»ˉCSòy½Å */
        GPIO_Initure.Pin = W5500_SCS;
        GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;
        GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;
        GPIO_Initure.Pull=GPIO_PULLUP;                  //éÏà-
        HAL_GPIO_Init(W5500_SCS_PORT, &GPIO_Initure);
        HAL_GPIO_WritePin(W5500_SCS_PORT,W5500_SCS,GPIO_PIN_SET);
       
        /* W5500_INTòy½Å3õê¼»ˉÅäÖÃ(PC4) */       
        GPIO_Initure.Pin = W5500_INT;
        GPIO_Initure.Mode = GPIO_MODE_IT_FALLING;
        GPIO_Initure.Pull=GPIO_PULLUP;
        HAL_GPIO_Init(W5500_INT_PORT, &GPIO_Initure);
       


        /* Connect EXTI Line4 to PC4 */
        HAL_NVIC_SetPriority(EXTI4_IRQn,6,0);       //
    HAL_NVIC_EnableIRQ(EXTI4_IRQn);             //
}



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

使用道具 举报

5

主题

15

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-5-7
在线时间
15 小时
 楼主| 发表于 2019-6-4 19:07:46 | 显示全部楼层
帖子上不知道为啥发表情出来了。。  引脚分别为 PI0(scs) PI1(SCLK) PI2(MISO) PI3(MOSI)   PH2(INT)  PH14(RST)
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14433
金钱
14433
注册时间
2018-8-3
在线时间
1157 小时
发表于 2019-6-4 20:44:47 | 显示全部楼层
可以参照下这个 配置试下

实验36 NRF24L01无线通信实验.rar

1.72 MB, 下载次数: 39

啊哈~加油!!
回复

使用道具 举报

5

主题

15

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-5-7
在线时间
15 小时
 楼主| 发表于 2019-6-4 21:51:06 | 显示全部楼层
翼行园子 发表于 2019-6-4 20:44
可以参照下这个 配置试下

好的我看看
回复

使用道具 举报

5

主题

15

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-5-7
在线时间
15 小时
 楼主| 发表于 2019-6-4 21:52:01 | 显示全部楼层
加了一行 GPIO_Initure.Alternate=GPIO_AF5_SPI2; 就有时钟和写信号了,但没有读信号? 寄存器读出来都是0xFF
回复

使用道具 举报

2

主题

582

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2690
金钱
2690
注册时间
2014-5-23
在线时间
188 小时
发表于 2019-6-5 14:43:53 | 显示全部楼层
读信号是由外设产生的,你要看看你的外设有没有正确返回数据
回复

使用道具 举报

5

主题

15

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-5-7
在线时间
15 小时
 楼主| 发表于 2019-6-5 16:18:52 | 显示全部楼层
awsawzj 发表于 2019-6-5 14:43
读信号是由外设产生的,你要看看你的外设有没有正确返回数据

嗯嗯 我在怀疑是不是外设没有回应
回复

使用道具 举报

5

主题

15

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-5-7
在线时间
15 小时
 楼主| 发表于 2019-6-5 17:09:39 | 显示全部楼层
现在的情况是   芯片版本寄存器读出来好像高低位反了  应该是0x04  读出来0x40  其他寄存器读出来是0x00
读写信号看了下是有信号输出的  
回复

使用道具 举报

5

主题

15

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-5-7
在线时间
15 小时
 楼主| 发表于 2019-6-6 11:12:53 | 显示全部楼层
看了下波形有点问题    大家知道这会是什么问题嘛?


MISO

MISO

MOSI

MOSI

SCLK

SCLK
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 17:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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