问答

汇集网友智慧,解决技术难题

GDmaker

TA的家园币:29  

  • GD32F350系列 PF1做普通IO

    GD32F350K8U6芯片,想要将PF1用作普通IO来使用,需要进行特殊的设置处理吗?我使用普通IO的设置方式,配置的为gpio_mode_set(GPIOF,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLUP,GPIO_PIN_1);gpio_output_options_set(GPIOF,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_1);发现无论配置为高还是低,测出来的电压都是0.6V左右,因为是晶振引脚,想着可能有其他的设置,我几种情况组合都实验了,发现没有作用,从stm32的经验来看,是内外部晶振的设置可能有影响,但是没有找到配置的地方,datasheet上也说明了这个引脚可以作为普通IO,但是没有具体说明需要怎样的配置

  • gd32f350R 使用iic1

    使用GD32F350R系列的开发板,调试iic协议,使用iic0的时候两个开发板可以通信(都使用iic0接口,一个主,一个从),但是换成iic1就不可以了,不论iic1做主机还是从机都不行。iic1做主机时发现在i2c_master_addressing之后,抓出来的波形只有一个start信号,并没有从机地址的信号发出来以下是主机程序:#include#include"gd32f3x0.h"#include"gd32f350r_eval.h"#defineI2C1_OWN_ADDRESS70x72#defineI2C1_SLAVE_ADDRESS70x45uint8_ti2c_transmitter[16];voidrcu_config(void);voidgpio_config(void);voidi2c_config(void);/*!\briefmainfunction\paramnone\param[out]none\retvalnone*/intmain(void){inti;gd_eval_com_init(EVAL_COM);/*RCUconfigure*/rcu_config();/*GPIOconfigure*/gpio_config();/*I2Cconfigure*/i2c_config();for(i=0;i<16;i++){i2c_transmitter=i+0x80;}/*waituntilI2Cbusisidle*/while(i2c_flag_get(I2C1,I2C_FLAG_I2CBSY));/*sendastartconditiontoI2Cbus*/i2c_start_on_bus(I2C1);/*waituntilSBSENDbitisset*/while(!i2c_flag_get(I2C1,I2C_FLAG_SBSEND));/*sendslaveaddresstoI2Cbus*/i2c_master_addressing(I2C1,0x45,I2C_TRANSMITTER);/*waituntilADDSENDbitisset*/while(!i2c_flag_get(I2C1,I2C_FLAG_ADDSEND));/*clearADDSENDbit*/i2c_flag_clear(I2C1,I2C_FLAG_ADDSEND);/*waituntilthetransmitdatabufferisempty*/while(!i2c_flag_get(I2C1,I2C_FLAG_TBE));printf("starttotransfer\r\n");for(i=0;i<16;i++){/*datatransmission*/i2c_data_transmit(I2C1,i2c_transmitter);/*waituntiltheTBEbitisset*/while(!i2c_flag_get(I2C1,I2C_FLAG_TBE));}/*sendastopconditiontoI2Cbus*/i2c_stop_on_bus(I2C1);/*waituntilstopconditiongenerate*/while(I2C_CTL0(I2C1)&0x0200);/*infiniteloop*/while(1){}}/*!\briefenabletheperipheralclock\paramnone\param[out]none\retvalnone*/voidrcu_config(v

    嵌入式 GD32F I2c iic

    2022-09-14 0