[STM32F4]

401SPI2的半双工模式???

[复制链接]
447|11
手机看帖
扫描二维码
随时随地手机跟帖
1021256354|  楼主 | 2020-11-28 20:56 | 显示全部楼层 |阅读模式
spi, AN, ST, ni, TI
spi2半双工模式,主模式下发送和接收部分,官方有例程么???
调试不通单线spi2:
  hspi2.Instance = SPI2;
  hspi2.Init.Mode = SPI_MODE_MASTER;
  hspi2.Init.Direction = SPI_DIRECTION_1LINE;
  hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
  hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
  hspi2.Init.NSS = SPI_NSS_SOFT;
  hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;
  hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi2.Init.CRCPolynomial = 7;
  if (HAL_SPI_Init(&hspi2) != HAL_OK)
  {
    Error_Handler();
  }
        HAL_Delay(100);
LL_SPI_SetTransferDirection(hspi2.Instance, LL_SPI_HALF_DUPLEX_TX);
  
  /* Enable SPI before start transmission */
  LL_SPI_Enable(hspi2.Instance);

  while(ubNbDataToTransmit > 0)
  {
    /* Check TXE flag to transmit data */
    if(LL_SPI_IsActiveFlag_TXE(hspi2.Instance))
    {
      /* Transmit 8bit Data */
      LL_SPI_TransmitData8(hspi2.Instance, aTxBuffer[ubNbDataTransmitted++]);
      ubNbDataToTransmit--;
    }
  }
  
  /* Wait End Of Transmission: TXE set and Tx Fifo empty */
  while((LL_SPI_IsActiveFlag_TXE(hspi2.Instance) != 1));
        /*rx*/
        LL_SPI_SetTransferDirection(hspi2.Instance, LL_SPI_HALF_DUPLEX_RX);
        while(LL_SPI_IsActiveFlag_RXNE(hspi2.Instance) != 1);
        SPI_FLASH_CS_HIGH();
        while(LL_SPI_IsActiveFlag_RXNE(hspi2.Instance))
        {
                aRxBuffer[i] = LL_SPI_ReceiveData8(hspi2.Instance);
                if(i < 10)
                {
                        i++;
                }
        }
       
  /* Disable SPI after End of Transmission */
  LL_SPI_Disable(hspi2.Instance);
               
       
        printf("\r\nFlashID is %s\r\n", aRxBuffer);               

使用特权

评论回复
在曼谷的春| | 2023-1-12 14:38 | 显示全部楼层
你用的F401啊?应该是能有例程的吧

使用特权

评论回复
一只眠羊| | 2023-1-12 15:10 | 显示全部楼层
我觉得你可以用cubemx生成一个,这个底层部分都帮你处理好了

使用特权

评论回复
其实看数据手册都能配置出来的,这个SPI不复杂

使用特权

评论回复
温室雏菊| | 2023-1-12 16:14 | 显示全部楼层
单线SPI好像不行吧,得双线或者三线才行,应该

使用特权

评论回复
故意相遇| | 2023-1-12 16:46 | 显示全部楼层
你调试的时候,是没有输出吗?

使用特权

评论回复
捧一束彼岸花| | 2023-1-12 17:18 | 显示全部楼层
你用逻辑分析仪或者示波器抓一下波形试试呢?

使用特权

评论回复
我吃小朋友| | 2023-1-12 17:50 | 显示全部楼层
官方好像就有SPI1的吧,你可以改一下就能用

使用特权

评论回复
月亮一键变蓝| | 2023-1-12 18:21 | 显示全部楼层
你用cubemx生成吧,这个生成之后基本直接能用的

使用特权

评论回复
将爱藏于深海| | 2023-1-12 18:53 | 显示全部楼层
你用的是LL库么?楼主

使用特权

评论回复
白马过平川| | 2023-1-12 19:25 | 显示全部楼层
是不是哪里时序错了啊,你用设备查查时序看看,感觉你写的没啥问题

使用特权

评论回复
SantaBunny| | 2023-2-19 21:57 | 显示全部楼层
这个生成了就基本能用的吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

147

主题

639

帖子

3

粉丝