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

求助论坛里的大神

[复制链接]
tanyopoom 提问时间:2018-9-21 09:47 /
我stm8 spi(主机模式)发送数据,但是RXNE总是为1,而且OVR也为1,不知道怎么回事,我也没有接收数据呀,我的miso配置的是“GPIO_MODE_IN_PU_NO_IT”,是不是错了?另外,我发送数据的时候clk有方波出来,但是mosi引脚却没有变化
收藏 评论14 发布时间:2018-9-21 09:47

举报

14个回答
wenyangzeng 回答时间:2018-9-21 10:02:00
没看到楼主对SPI的初始化,STM8 SPI初始化代码是:
SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_2, SPI_MODE_MASTER, SPI_CLOCKPOLARITY_HIGH, SPI_CLOCKPHASE_2EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT, 0x07);
SPI_Cmd(ENABLE);

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

tanyopoom 回答时间:2018-9-21 10:10:58
wenyangzeng 发表于 2018-9-21 10:02
没看到楼主对SPI的初始化,STM8 SPI初始化代码是:
SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_2,  ...

兄弟,引脚的配置我不知道有没有错,麻烦帮我检查一下,拜托拜托:
  GPIO_Init(GPIOC, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST);     //clk
  GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_OUT_PP_HIGH_SLOW);    //MOSI
  GPIO_Init(GPIOC, GPIO_PIN_7, GPIO_MODE_IN_PU_NO_IT);              //MISO

还有,spi初始化配置最后一个一定要是0x07吗?我的是0x00
wenyangzeng 回答时间:2018-9-21 10:15:45
本帖最后由 wenyangzeng 于 2018-9-21 10:17 编辑
tanyopoom 发表于 2018-9-21 10:10
兄弟,引脚的配置我不知道有没有错,麻烦帮我检查一下,拜托拜托:
  GPIO_Init(GPIOC, GPIO_PIN_5, GPIO ...

ST官方代码很多可以参考的:
SPI.rar (26.16 KB, 下载次数: 5)
tanyopoom 回答时间:2018-9-21 10:20:18
wenyangzeng 发表于 2018-9-21 10:02
没看到楼主对SPI的初始化,STM8 SPI初始化代码是:
SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_2,  ...

SPI_Init(SPI_FIRSTBIT_MSB,
           SPI_BAUDRATEPRESCALER_64,
           SPI_MODE_MASTER,
           SPI_CLOCKPOLARITY_HIGH,
           SPI_CLOCKPHASE_2EDGE,
           SPI_DATADIRECTION_2LINES_FULLDUPLEX,
           SPI_NSS_SOFT, 0x00);
这是我的spi配置,芯片是16MHZ的,所以波特率分频值我算了一下不知道对不对,16000000除以64等于250KHZ(上次我看到网上说频率要在500KHZ以内,200KHZ以上),不知道我有没有理解错
七哥 回答时间:2018-9-21 10:35:12
先跑个SPI的样例程序吧。
你这请教问题,又不附上工程,谁知道你都干了些什么,还需要坛友一点一点挤牙膏似的,在去问你才告诉吗?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wenyangzeng 回答时间:2018-9-21 10:42:36
tanyopoom 发表于 2018-9-21 10:20
SPI_Init(SPI_FIRSTBIT_MSB,
           SPI_BAUDRATEPRESCALER_64,
           SPI_MODE_MASTER,

那个0x07是CRCPolynomial,不是分频系数!
STM1024 回答时间:2018-9-21 15:01:54
SPI模式、所连接器件你都不说一下?
tanyopoom 回答时间:2018-9-21 15:12:16
stm1024 发表于 2018-9-21 15:01
SPI模式、所连接器件你都不说一下?

我说了主模式呀,嗯、、、没有连接器件,因为主模式的clk和mosi应该不用连接其他东西也能发数据的吧
tanyopoom 回答时间:2018-9-21 15:15:05
wenyangzeng 发表于 2018-9-21 10:42
那个0x07是CRCPolynomial,不是分频系数!

嗯嗯,我说的是SPI_BAUDRATEPRESCALER_64,这个我示波器抓了一下,确实是250KHZ
tanyopoom 回答时间:2018-9-21 15:38:53
还有个问题谁能哪位大神能区分一下SPI_IT_TXE和SPI_FLAG_TXE,他们用起来有什么不同
STM1024 回答时间:2018-9-21 18:56:39
tanyopoom 发表于 2018-9-21 15:12
我说了主模式呀,嗯、、、没有连接器件,因为主模式的clk和mosi应该不用连接其他东西也能发数据的吧 ...

模式指的是SPI的CPHA和CPOL,一些SPI设备只支持一种或两种模式。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

tanyopoom 回答时间:2018-9-28 16:59:33
谢谢各位的解答,问题解决了,是溢出错误了

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2 结帖奖励

查看全部评分

tanyopoom 回答时间:2018-9-29 10:14:18
发送数据给SD卡的时候如何附加充填时钟

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版