打印
[STM32F4]

401SPI2的半双工模式???

[复制链接]
848|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生成一个,这个底层部分都帮你处理好了

使用特权

评论回复
地板
未说出口的像你| | 2023-1-12 15:42 | 只看该作者
其实看数据手册都能配置出来的,这个SPI不复杂

使用特权

评论回复
5
温室雏菊| | 2023-1-12 16:14 | 只看该作者
单线SPI好像不行吧,得双线或者三线才行,应该

使用特权

评论回复
6
故意相遇| | 2023-1-12 16:46 | 只看该作者
你调试的时候,是没有输出吗?

使用特权

评论回复
7
捧一束彼岸花| | 2023-1-12 17:18 | 只看该作者
你用逻辑分析仪或者示波器抓一下波形试试呢?

使用特权

评论回复
8
我吃小朋友| | 2023-1-12 17:50 | 只看该作者
官方好像就有SPI1的吧,你可以改一下就能用

使用特权

评论回复
9
月亮一键变蓝| | 2023-1-12 18:21 | 只看该作者
你用cubemx生成吧,这个生成之后基本直接能用的

使用特权

评论回复
10
将爱藏于深海| | 2023-1-12 18:53 | 只看该作者
你用的是LL库么?楼主

使用特权

评论回复
11
白马过平川| | 2023-1-12 19:25 | 只看该作者
是不是哪里时序错了啊,你用设备查查时序看看,感觉你写的没啥问题

使用特权

评论回复
12
SantaBunny| | 2023-2-19 21:57 | 只看该作者
这个生成了就基本能用的吧

使用特权

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

本版积分规则

148

主题

642

帖子

3

粉丝