-
GD32H757VGT6的硬件I2C问题
GD32H757VGT6的硬件I2C读写都一直卡在while(!i2c_flag_get(I2C0,I2C_FLAG_ADDSEND)),地址确认没有问题,时序是跟着手册里的时序表配置的,有大佬知道是为什么吗代码如下:初始化/*禁用I2C外设*/i2c_deinit(I2C0);//禁用从机地址i2c_address_disable(I2C0);/*配置时序(100kHz,满足t_VD;DAT≤3.45μs)*/i2c_timing_config(I2C0,14,3,0);//PSC=14,SDADEL=3,SCLDEL=0i2c_master_clock_config(I2C0,65,34);//SCLH=65,SCLL=34→周期≈10μs/*禁用自动结束模式(手动控制STOP条件)*/i2c_automatic_end_disable(I2C0);/*使能I2C*/i2c_enable(I2C0);i2c_nack_enable(I2C0);i2c_bus_timeout_a_config(I2C0,0x96);//超时阈值根据实际时钟调/*单字节写入*/intbyte_write(uint16_taddr,uint8_tdata){/*等待总线空闲*/while(i2c_flag_get(I2C0,I2C_FLAG_I2CBSY));/*配置传输3字节:地址高、地址低、数据*/i2c_transfer_byte_number_config(I2C0,3);/*发送起始条件*/i2c_start_on_bus(I2C0);/*3等待地址发送完成或检测错误*/i2c_master_addressing(I2C0,EEPROM_WRITE_ADDR,I2C_MASTER_TRANSMIT);while(!i2c_flag_get(I2C0,I2C_FLAG_ADDSEND)){if(i2c_flag_get(I2C0,I2C_FLAG_NACK)||i2c_flag_get(I2C0,I2C_FLAG_BERR)||i2c_flag_get(I2C0,I2C_FLAG_LOSTARB)){i2c_stop_on_bus(I2C0);i2c_flag_clear(I2C0,I2C_FLAG_NACK|I2C_FLAG_BERR|I2C_FLAG_LOSTARB);return-1;//错误处理}}i2c_flag_clear(I2C0,I2C_FLAG_ADDSEND);/*发送地址高字节*/i2c_data_transmit(I2C0,(addr>>8));while(!i2c_flag_get(I2C0,I2C_FLAG_TBE)){//等待发送缓冲区空}/*发送地址低字节*/i2c_data_transmit(I2C0,(addr&0xFF));while(!i2c_flag_get(I2C0,I2C_FLAG_TBE)){//等待发送缓冲区空}/*发送数据字节*/i2c_data_transmit(I2C0,data);while(!i2c_flag_get(I2C0,I2C_FLAG_TBE)){//等待发送缓冲区空}/*等待传输完成(TC标志)*/while(!i2c_flag_get(I2C0,I2C_FLA
2025-03-31 15 -
GD32F470 两个定时器怎样同时启动?
GD32F470两个定时器怎样同时启动?
2025-03-25 15 -
GD-LINK无法在KEIL上调试的问题
芯片:GD32F303RCT6调试器:GD-LINK调试软件:KEILV5(5.29)问题:开始调试后,程序从SystemInit直接进入HardFault中断,程序无法运行。启动文件:startup_stm32f10x_hd.s。驱动:st的标准库驱动,如stm32f10x_gpio.c。KEIL配置:芯片型号GD32F303RCT6。Debug通讯CMSIS-DAPDebugger。现象:能正常擦除、烧写程序到芯片。但是进入调试后,为进入main函数直接跳转到了HardFault中断。
2025-01-15 16 -
请问mm32spin0280的PWM如何设置到192MHz?
2025-01-06 10 -
Embedded Builder.exe中缺少GD32F4系列MCU型号
请问我在使用兆易创新的开发软件时,在设备选型时缺少GD32F4系列MCU型号,请问我需要下载那些插件吗?
2024-12-31 12 -
单周期乘法器和17周期分频器我要怎么去使用它?
GD32E230系列的,里面描述的单周期乘法器和17周期分频器我要怎么去使用它?在哪里有详细的描述?
2024-12-10 13 -
vscode+Jlink单步调试出错,cortex-debug不受支持,怎么回事?
launch文件有没有问题呢?是自动生成的我点击了1、2,报出了这个错误,见3
2024-11-22 11 -
vscode+GCC+Jlink烧录GD32程序时发生Writing target memory failed
首次用vscode来烧录(国产化的需要),仿真器是ArmV9,芯片是GD32F103ZET6,烧录配置想用JlnkSWD,但是用USB连接pc和仿真器--GD开发板后,点击vscode中的烧录,出现如下错误:网上找了很多帖子还没有解决,有思路的请指点下,谢谢
2024-11-06 77 -
stm32L431 I2C没有反应
买了一STM32L431CBT6的板子想简单验证一下IIC是否通信正常。stm32作为从机,同时买了一个USB转IIC的CH341模块,连接电脑通过电脑的IIC工具发送数据给到stm32,使用CUBEMXHAL编程在中断里面点个灯,发现连中断都没有进去,轮询模式获取IIC数据也是毫无反应,通过示波器量取SDA和SCL数据线信号,发现有信号,且信号是正常的,有大佬帮我能解惑嘛,第一次玩stm32。。。。
2024-08-20 10 -
dsPIC33EP64MC504-E/PT单片机设有温度保护吗
在做高温实验时(室温-175℃),当温度超过155℃(该器件最高结温)时,串口通讯中断,在自然降温过程中,当温度达到155℃时,单片机重启,串口通讯恢复,想问一下各位大佬,是不是该器件设有温度保护导致了这个现象?
2024-06-14 11 -
GD32w515 qspi 配置错误 新手求帮助!
使用引脚PA9,PA10,PA11,PA12,PB3,PB4我在读取芯片id时读取的是88,我查看芯片手册应该是引脚复用为GPIO_AF_3和GPIO_AF_4,但是还是不对,示波器打出来的波形很奇怪,新手求帮助!配置代码如下:rcu_periph_clock_enable(RCU_GPIOA);rcu_periph_clock_enable(RCU_GPIOB);rcu_periph_clock_enable(RCU_GPIOC);gpio_af_set(GPIOA,GPIO_AF_3,GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12);gpio_mode_set(GPIOA,GPIO_MODE_AF,GPIO_PUPD_NONE,GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12);gpio_output_options_set(GPIOA,GPIO_OTYPE_PP,GPIO_OSPEED_166MHZ,GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12);gpio_af_set(GPIOB,GPIO_AF_4,GPIO_PIN_3|GPIO_PIN_4);gpio_mode_set(GPIOB,GPIO_MODE_AF,GPIO_PUPD_NONE,GPIO_PIN_3|GPIO_PIN_4);gpio_output_options_set(GPIOB,GPIO_OTYPE_PP,GPIO_OSPEED_166MHZ,GPIO_PIN_3|GPIO_PIN_4);qspi_init_structInit;//rcu_periph_clock_enable(RCU_GTZC);//tzgpc_tzspc_peripheral_attributes_config(TZGPC_PERIPH_QSPI_FLASHREG,TZGPC_TZSPC_PERIPH_SEC);qspi_flash_gpio_config();//qspi_deinit();rcu_periph_clock_enable(RCU_QSPI);Init.prescaler=1;/*QSPIclock=AHBCLK/(ClockPrescaler+1)*/Init.fifo_threshold=10;Init.sample_shift=QSPI_SAMPLE_SHIFTING_NONE;//QSPI_SAMPLE_SHIFTING_NONE;Init.flash_size=22;/*2^(FlashSize+1)*****numberofaddressbits=FlashSize+1*/Init.cs_high_time=QSPI_CS_HIGH_TIME_1_CYCLE;Init.clock_mode=QSPI_CLOCK_MODE_0;qspi_init(&Init);
2024-05-21 16 -
GD32E230C8T6 高级定时器timer0无法正常输出PWM波形
原本想用高级定时器的中央对齐计数模式来输出SPWM波,但是TIMER0的CH0,CH1等口,都无法正常输出PWM波形,换成普通定时器就可以了,STM32里对于高级定时器输出PWM波形,需要多加一个TIM_CtrlPWMOutputs函数,但是我看了GD32固件库函数,没有类似的,我怀疑是这个问题,有无大佬解答一下啊
2024-05-02 16 -
HC32F460时钟模式错误出现串口乱码
使用了HC32F460PETB单片机,在批量生产中个别产品出现串口乱码情况,经排查是硬件电路设计为外部8M有源晶振,代码中en_clk_xtal_mode配置的是CLKXtalModeOsc=1u,后将代码配置修改为CLKXtalModeExtclk=1u后串口打印正常,有大神能帮忙解释下原理吗?为什么这个地方配置错误,产品会出现问题,之前小批量生产的时候没有出现乱码现象。
2024-04-28 21 -
凌鸥的MCU可以一次写入mainflash以及NVR区?
现在想通过烧录器一次写入mainflash区以及NVR区,测试过可以分次写入mainflash区或者NVR区,都可以成功写入,那么是否需要在Mainflash以及NVR区之间进行复位或者重新上电才可以烧录么?两个区域在不断电不复位的情况下同时写入会导致mainflash区的数据无法成功写入。
2024-03-26 7 -
PSOC4的EZI2C深度睡眠唤醒问题
你好,使能EZI2C的EnableWakeupfromDeepSleepMode功能,在系统进入深度睡眠,通过此功能唤醒芯片,是否一定会导致主机获取第一帧数据失败,谢谢。
2024-01-31 19