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

STM32 F030 SPI

[复制链接]
wenzh00808ongzi 提问时间:2014-12-15 09:31 /
阅读主题, 点击返回1楼
收藏 评论18 发布时间:2014-12-15 09:31
18个回答
wxh0000mm 回答时间:2014-12-17 08:57:57
用示波器看看你的管脚信号对不对!
wenzh00808ongzi 回答时间:2014-12-17 11:10:14
Dylan疾风闪电 发表于 2014-12-16 18:22
读不到数据的时候,检查一下这些因素:
1.从设备的时序:SPI_CPOL 和 SPI_CPHA。
2.通讯速率,有的时候需要 ...

从设备的时序图已经贴上,sclk波形正常,miso.mosi没有波形。是不是spi配置有什么问题?但是实在是找不出哪里有问题?附带原理图。

stm32f030

stm32f030
回答时间:2014-12-17 11:24:59
总线上有数据在发送吗?SPI接收不到?
Dylan疾风闪电 回答时间:2014-12-17 16:08:30
主模式的情况下,GPIO端口的配置如下:
SPIx_SCK    推挽复用输出
SPIx_MOSI  推挽复用输出
SPIx_MISO  浮空输入或带上拉输入
-----------------------------------------------------------
你的MOSI引脚没波形,那么配置或者硬件肯定存在问题的。再怎么说,SCK和MOSI都是由MCU主控的。
Dylan疾风闪电 回答时间:2014-12-19 08:21:47
本帖最后由 Dylan疾风闪电 于 2014-12-19 08:27 编辑

/*附上GPIO配置,仅作参考。SPLIT_DEFINE_PIN、SPLIT_DEFINE_PORT、SetAF_SPI1_SCK是宏定义,等效于类似GPIO_Pin_5、GPIOA、GPIO_PinAFConfig(..,..)不用深入。*/

  1. //SPIx_SCK 主模式 推挽复用输出
  2.         //SPIx_MOSI 全双工模式/主模式 推挽复用输出
  3.         //SPIx_MISO 全双工模式/主模式 浮空输入或带上拉输入
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  5.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  6.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  7.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  8.         GPIO_InitStructure.GPIO_Pin = SPLIT_DEFINE_PIN(X2_CLK);
  9.         GPIO_Init(SPLIT_DEFINE_PORT(X2_CLK), &GPIO_InitStructure);
  10.         SetAF_SPI1_SCK;
  11.        
  12.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  13.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  14.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  15.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  16.         GPIO_InitStructure.GPIO_Pin = SPLIT_DEFINE_PIN(X2_SDI);
  17.         GPIO_Init(SPLIT_DEFINE_PORT(X2_SDI), &GPIO_InitStructure);
  18.         SetAF_SPI1_MOSI;

  19.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  20.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  21.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  22.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  23.         GPIO_InitStructure.GPIO_Pin = SPLIT_DEFINE_PIN(X2_SDO);
  24.         GPIO_Init(SPLIT_DEFINE_PORT(X2_SDO), &GPIO_InitStructure);
  25.         SetAF_SPI1_MISO;
复制代码


wenzh00808ongzi 回答时间:2014-12-19 18:29:57
Dylan疾风闪电 发表于 2014-12-19 08:21
/*附上GPIO配置,仅作参考。SPLIT_DEFINE_PIN、SPLIT_DEFINE_PORT、SetAF_SPI1_SCK[/backcolor ...

我忽然发现我spi配置的是正确的,我用逻辑分析仪发送数据已经读出,从设备就是没有回应,连clk都没有,我再研究研究,电路图,芯片数据手册。
Dylan疾风闪电 回答时间:2014-12-20 09:31:54
spi_clk是主设备产生的。从设备只会在spi_miso这一个引脚输出信号。
奔跑小蜗牛 回答时间:2014-12-20 09:59:58
读数据是从设备往主设备发数据,从设备操作总线,你是不是引脚状态没有配置好,stm32一直占用着总线,或者推挽输出,导致从设备不能正常的拉低拉高总线,那stm32就读不到数据了。找个示波器或者逻辑分析仪跟踪下通讯波形,不就一目了然了
wenzh00808ongzi 回答时间:2014-12-29 09:35:33
奔跑小蜗牛 发表于 2014-12-20 09:59
读数据是从设备往主设备发数据,从设备操作总线,你是不是引脚状态没有配置好,stm32一直占用着总线,或者 ...

最近比较忙,居然忘了,我又发现一个问题,就是spi只能第二次能读取到数据,其余全是0,但是波形上是能看到数据的 ,这个是为何?
12
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版