tanyopoom 发表于 2018-9-21 09:47:35

求助论坛里的大神

我stm8 spi(主机模式)发送数据,但是RXNE总是为1,而且OVR也为1,不知道怎么回事,我也没有接收数据呀,我的miso配置的是“GPIO_MODE_IN_PU_NO_IT”,是不是错了?另外,我发送数据的时候clk有方波出来,但是mosi引脚却没有变化

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);

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_CLOCKPHASE_2EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT, 0x07);是0还是7完全可以动手试一下就知道了。
另外,好像设置SPI无需再设置GPIO

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以上),不知道我有没有理解错

toofree 发表于 2018-9-21 10:35:12

先跑个SPI的样例程序吧。
你这请教问题,又不附上工程,谁知道你都干了些什么,还需要坛友一点一点挤牙膏似的,在去问你才告诉吗?

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
页: [1] 2
查看完整版本: 求助论坛里的大神