打印
[STM32F0]

STM32F0 用HAL 库SPI无法读取返回的数据

[复制链接]
1793|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zclic|  楼主 | 2016-6-30 18:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.首先用IO 口来模拟SPI 通信,正常一点问题也没有。这就排除了硬件的问题。
2. 用STM32CubeMX 直接生成 SPI 代码。配置如下:
  hspi1.Instance = SPI1;
  hspi1.Init.Mode = SPI_MODE_MASTER;
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
  hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
  hspi1.Init.NSS = SPI_NSS_SOFT;
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi1.Init.TIMode = SPI_TIMODE_DISABLED;
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED;
  hspi1.Init.CRCPolynomial = 7;
  hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
hspi1.Init.NSSPMode = SPI_NSS_PULSE_DISABLED;
  HAL_SPI_Init(&hspi1);

3. 程序第一次读取正常。再发送后读取就始终读回的都是00. 用示波器看波形数据都正常。就是读的时候波形是正确的。但就是
set_cs_low;
                HAL_SPI_Transmit(&hspi1, &tx_cmd, 1,100);
                        HAL_SPI_Receive(&hspi1,buffer,1,100);
set_cs_high

buffer 始终为0。感觉读不进数据一样。

有人有遇到这个问题吗?这个不是新库HAL的一个BUG吧。调适了一周多。N种办法都想过(中断,配置,延时,字长。etc。。)。都没有用
沙发
zclic|  楼主 | 2016-6-30 19:20 | 只看该作者
这个应该是STM32 F0的BUG .。。被STM32的害死了

使用特权

评论回复
板凳
zclic|  楼主 | 2016-7-1 10:04 | 只看该作者
1024

使用特权

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

本版积分规则

3

主题

25

帖子

1

粉丝