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

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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版