打印

SPI 数据错误

[复制链接]
1013|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
achu|  楼主 | 2021-12-20 10:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 achu 于 2021-12-20 11:24 编辑

数据与时钟不匹配,只有半个时钟宽度,原来使用STM32F103RE 没有问题,使用SPI0单线半双工模式

QQ图片20211220105014.png (70.1 KB )

QQ图片20211220105014.png

使用特权

评论回复
沙发
achu|  楼主 | 2021-12-20 11:20 | 只看该作者
上图实际发送的数据是0X40,但现在完全错误

使用特权

评论回复
板凳
achu|  楼主 | 2021-12-20 11:23 | 只看该作者
void spi_config(void)
{
    spi_parameter_struct spi_init_struct;
    /* deinitilize SPI and the parameters */
    spi_i2s_deinit(SPI0);
   // spi_i2s_deinit(SPI2);
    spi_struct_para_init(&spi_init_struct);

    /* SPI0 parameter config */
    spi_init_struct.trans_mode           = SPI_TRANSMODE_FULLDUPLEX;/*SPI_TRANSMODE_BDTRANSMIT;//*/
    spi_init_struct.device_mode          = SPI_MASTER;
    spi_init_struct.frame_size           = SPI_FRAMESIZE_8BIT;
    spi_init_struct.clock_polarity_phase = SPI_CK_PL_HIGH_PH_2EDGE;
    spi_init_struct.nss                  = SPI_NSS_SOFT;
    spi_init_struct.prescale             = SPI_PSC_128;
    spi_init_struct.endian               = SPI_ENDIAN_LSB;
    spi_init(SPI0, &spi_init_struct);

    /* SPI2 parameter config */
    spi_init_struct.device_mode = SPI_SLAVE;
    spi_init_struct.nss         = SPI_NSS_SOFT;
    spi_init(SPI2, &spi_init_struct);
   
    spi_nss_internal_high(SPI0);
    spi_nss_internal_low(SPI2);
}
void gpio_config(void)
{
    /* SPI0 GPIO config:SCK/PA5, MISO/PA6, MOSI/PA7 */
       
                GPIO_BOP(GPIOA) = GPIO_PIN_4;
        gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4 );
    gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ,  GPIO_PIN_5 | GPIO_PIN_7);
       
    gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
   
    /* SPI2 GPIO config:SCK/PC10, MISO/PC11, MOSI/PC12 */
    gpio_pin_remap_config(GPIO_SPI2_REMAP, ENABLE);
    gpio_init(GPIOC, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10 | GPIO_PIN_12);
    gpio_init(GPIOC, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_11);
}

使用特权

评论回复
地板
QQ2224043166| | 2021-12-20 11:53 | 只看该作者
你换用的是哪个型号?

使用特权

评论回复
5
achu|  楼主 | 2021-12-20 12:35 | 只看该作者
QQ2224043166 发表于 2021-12-20 11:53
你换用的是哪个型号?

原来的STM32f103RE
现用GD32F103RE

使用特权

评论回复
6
QQ2224043166| | 2021-12-20 18:59 | 只看该作者
明年批量供货的型号 GD32F303RET6,建议直接换成这个,  103系列货况会越来越差

使用特权

评论回复
7
lyjian| | 2021-12-21 10:55 | 只看该作者
这种问题查软件看哪里没配对,没啥好bb的

使用特权

评论回复
8
Sean_JianLong| | 2021-12-21 20:46 | 只看该作者
使用过GD32F450 SPI0(主)和SPI2(主) 也遇到过类似的问题
SPI0和SPI2配置完全相同只是挂的从设备不同, SPI2一切正常, SPI0不正常
后来将SPI0的初始化尽可能的提前, SPI0就正常了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝