GD32F103 SPI

[复制链接]
1282|9
 楼主| WANGZHONGWANG 发表于 2022-5-7 16:20 | 显示全部楼层 |阅读模式
本帖最后由 WANGZHONGWANG 于 2022-5-7 16:21 编辑

GD32F103 的SPI 就不发时钟信号,ST就行
spi_parameter_struct spi_init_struct;
    rcu_periph_clock_enable(RCU_GPIOB);
    rcu_periph_clock_enable(RCU_SPI1);

    /* SPI0_SCK(PA5), SPI0_MISO(PA6) and SPI0_MOSI(PA7) GPIO pin configuration */
    gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_13 | GPIO_PIN_15);
    gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_14);
    /* SPI0_CS(PE3) GPIO pin configuration */
    gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_12);

    /* chip select invalid*/
    gpio_bit_set(GPIOB,GPIO_PIN_12);

    /* SPI0 parameter config */
    spi_init_struct.trans_mode           = SPI_TRANSMODE_FULLDUPLEX;
    spi_init_struct.device_mode          = SPI_MASTER;
    spi_init_struct.frame_size           = SPI_FRAMESIZE_8BIT;
    spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE;
    spi_init_struct.nss                  = SPI_NSS_SOFT;
    spi_init_struct.prescale             = SPI_PSC_2;
    spi_init_struct.endian               = SPI_ENDIAN_MSB;
    spi_init(SPI1, &spi_init_struct);

    /* enable SPI0 */
    spi_enable(SPI1);
void  SPIv_WriteData(u8 Data)
{
/*unsigned char i=0;
for(i=8;i>0;i--)
{
   if(Data&0x80)
  {
   GPIOB->BOR=GPIO_PIN_15;      //1
  }
    else
  {
   GPIOB->BCR=GPIO_PIN_15;      //1
  }
    GPIOB->BOR=GPIO_PIN_13;      //1
    GPIOB->BCR=GPIO_PIN_13;      //0
    Data<<=1;
}*/
while(RESET == spi_i2s_flag_get(SPI1, SPI_FLAG_TBE));
SPI_DATA(1)=Data;
  delay_ns(22);
}

AnkerSong 发表于 2022-5-9 15:40 | 显示全部楼层
本帖最后由 AnkerSong 于 2022-5-9 15:44 编辑

你发送函数参数填错了,是SPI1,不是1.

u8 SPIv_WriteData(u8 Data)
{
while(RESET == spi_i2s_flag_get(SPI1, SPI_FLAG_TBE));
SPI_DATA(SPI1)=Data;
while(RESET == spi_i2s_flag_get(SPI1, SPI_FLAG_RBNE));
return SPI_DATA(SPI1);
}
保守一点,你先用函数也成啊
u8 SPIv_WriteData(u8 Data)
{
while(RESET == spi_i2s_flag_get(SPI1, SPI_FLAG_TBE));
spi_i2s_data_transmit(SPI1,Data);
SPI_DATA(SPI1)=Data;
while(RESET == spi_i2s_flag_get(SPI1, SPI_FLAG_RBNE));
return (u8)spi_i2s_data_receive(SPI1);
}

fuqinyyy 发表于 2022-5-10 08:36 来自手机 | 显示全部楼层
直接拿的ST程序在跑?
kiwis66 发表于 2022-5-11 21:43 | 显示全部楼层
没配置好啊
tpgf 发表于 2022-6-6 10:57 | 显示全部楼层
这种错误难道没有报错信息吗
heimaojingzhang 发表于 2022-6-6 11:07 | 显示全部楼层
spi的名字写错了
keaibukelian 发表于 2022-6-6 11:35 | 显示全部楼层
不能一点都不改动吧
labasi 发表于 2022-6-6 11:55 | 显示全部楼层
这都可以通过编译?!
paotangsan 发表于 2022-6-6 12:06 | 显示全部楼层
引脚初始化 也是一样的吗
renzheshengui 发表于 2022-6-6 12:13 | 显示全部楼层
难道引脚是完全兼容的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

7

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部