你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

spi通信,一直接收不到数据

[复制链接]
lslp 提问时间:2015-7-22 13:50 /
阅读主题, 点击返回1楼
收藏 1 评论35 发布时间:2015-7-22 13:50
35个回答
zbber 回答时间:2016-10-21 17:58:48
HAL库里接收发送函数里面有存储数组,你只需要根据参数要求定义好接收位置即可
中山无雪 回答时间:2016-10-21 23:39:44
初始化SPI有问题
ynwscfsfi 回答时间:2016-10-22 00:20:17
解决了就好
andrewz 回答时间:2016-10-23 11:40:13
应该是寄存器的问题.
snjeym 回答时间:2016-10-23 18:59:44
zbber 发表于 2016-10-21 17:58
HAL库里接收发送函数里面有存储数组,你只需要根据参数要求定义好接收位置即可 ...

这个接收位置的定义指的是什么?看示波器图片上,MISO是有波形的,且CLK的第一、二边沿都有1信号存在,所以即使CLK的相位不正确的话,也应该有1的存在,不会一直是0呀?
snjeym 回答时间:2016-10-23 19:00:49

这个是CUBE自动生成的初始化函数:
/* SPI1 init function */
static void MX_SPI1_Init(void)
{

  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_128;
  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi1.Init.CRCPolynomial = 7;
  hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
  hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
  if (HAL_SPI_Init(&hspi1) != HAL_OK)
  {
    Error_Handler();
  }

}
snjeym 回答时间:2016-10-23 19:03:26
andrewz 发表于 2016-10-23 11:40
应该是寄存器的问题.

可以给出具体的寄存器名称吗?hspi->Instance->DR这个吗?
asssdz-382474 回答时间:2016-10-23 21:10:01
asssdz-382474 回答时间:2016-10-23 21:27:24
andrewz 回答时间:2016-10-24 08:54:58
如果要看具体的寄存器,你首先得告诉我芯片是什么型号..

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版