打印
[研电赛技术支持]

GD32替换STM32F103芯片过程中,SPI通讯数据出现问题

[复制链接]
720|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yutingwei|  楼主 | 2022-2-28 23:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD, pi

产品开发中,将STM32F103芯片换成GD32的芯片,但是依然是STM32的工程,其中#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)替换为#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF)

发现 CAN和串口通讯正常,但是SPI通讯异常,异常如下:
1、 SPI连续发送2个数据(u8),但是从示波器上看,发送的数据相反了,而且每个数据都左移了一位,数据接收还没有验证。
2、关于STM32工程中SPI的配置如下:
GPIO_InitTypeDef GPIO_InitStructure;
    SPI_InitTypeDef  SPI_InitStructure;

    RCC_APB1PeriphClockCmd(    RCC_APB1Periph_SPI2, ENABLE );   
    RCC_APB2PeriphClockCmd(    RCC_APB2Periph_GPIOB, ENABLE );   
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
   
    GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Mode     = GPIO_Mode_Out_PP;                                                      
    GPIO_InitStructure.GPIO_Speed    = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
   
    GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Mode     = GPIO_Mode_AF_PP;                                                         
    GPIO_InitStructure.GPIO_Speed    = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
   
    GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_14;
    GPIO_InitStructure.GPIO_Mode     = GPIO_Mode_IPU;                                                            
    GPIO_InitStructure.GPIO_Speed    = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
   
    GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Mode     = GPIO_Mode_AF_PP;                                                         
    GPIO_InitStructure.GPIO_Speed    = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
   
    SPI_InitStructure.SPI_Direction                 = SPI_Direction_2Lines_FullDuplex;        //
    SPI_InitStructure.SPI_Mode                             = SPI_Mode_Master;                                       
    SPI_InitStructure.SPI_DataSize                     = SPI_DataSize_8b;                                        //
    SPI_InitStructure.SPI_CPOL                             = SPI_CPOL_Low;                                               
    SPI_InitStructure.SPI_CPHA                             = SPI_CPHA_1Edge;                                          
    SPI_InitStructure.SPI_NSS                             = SPI_NSS_Soft;                                                
    SPI_InitStructure.SPI_BaudRatePrescaler    = SPI_BaudRatePrescaler_256;//SPI_BaudRatePrescaler_32;                        //
    SPI_InitStructure.SPI_FirstBit                     = SPI_FirstBit_MSB;                                        //
    //SPI_InitStructure.SPI_CRCPolynomial         = 7;                                                                //
    SPI_Init(SPI2, &SPI_InitStructure);                                                                                      //

    SPI_Cmd(SPI2, ENABLE);     


使用特权

评论回复
沙发
koala889| | 2022-4-2 16:11 | 只看该作者
可能初始化需要小修改
一般代理手上会有替代说明之类的文档,找他们要一下

使用特权

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

本版积分规则

47

主题

381

帖子

0

粉丝