初级会员
- 积分
- 124
- 金钱
- 124
- 注册时间
- 2020-2-26
- 在线时间
- 36 小时
|
22金钱
本帖最后由 balalalal 于 2023-10-13 09:27 编辑
GD32F330进行以下复用:PB1/SPI1_SCK,PA13/SPI1_MISO,使用NSS软件模式。其中,PB1引脚及复用情况见附件
新增说明:用同样的程序将PA5复用为SPI0_SCK,PA5能够正常输出时钟波形
问题:PB1的复用程序编好后,PB1无法发出时钟信号,将PB1设置成普通io输出模式,PB1输出电平可正常翻转。PB1和SPI1配置程序如下,有大佬知道原因是啥么:
rcu_periph_clock_enable(RCU_GPIOB);
gpio_af_set(GPIOB,GPIO_AF_6,GPIO_PIN_1);
gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_1);
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_1);
/* configure SPI1 */
rcu_periph_clock_enable(RCU_SPI1);
/* deinitilize SPI1 and the parameters */
spi_i2s_deinit(SPI1);
spi_struct_para_init(&spi_init_struct);
spi_init_struct.device_mode = SPI_MASTER;
spi_init_struct.trans_mode = SPI_TRANSMODE_FULLDUPLEX;
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_4;
spi_init_struct.endian = SPI_ENDIAN_MSB;
spi_init(SPI1, &spi_init_struct);
spi_enable(SPI1);
|
|