-
GD32F305奇怪串口问题求助
片子用的是GD32F305,外部8M晶振;原来用的是STM32F105,代码也是基于ST的库写的,一切正常; 现在想用GD的库重写代码,官方推荐的是25M的晶振,和晶振相关的头文件定义和函数也修改了,串口用的是USART2,也是就是ST里的USART3;波特率是921600,ST的库串口正常,换成GD库后串口速度变慢了,请问大家如何解决?
9390浏览量 6回复量 关注量 -
GD32F305ZET6 MCU跑死后,系统复位不响应
Hi 各位大牛,一个项目上用到GD32F305ZET6这款单片机,最近遇到个很困惑的问题描述如下: 1、QFP-144pin封装,只用到PA0(wakeup pin),ADC、I2C、UART以及少部分GPIO作为输入输出,12M的无源晶振作为MCU时钟,3.3V供电; 2、常温环境下,上电运行一切正常,跑了一段时间后发现MCU已经跑死,不响应外围IO上的高低电平信号,UART等接口均无响应; 3、按下NRST复位开关,MCU仍没有任何响应; 4、加看门狗后发现出问题时,看门口也无法复位; 5、电源供电,NRST电路等均按照手册要求设计,时钟波形均测量正常,并且没有发现异常case; 6、没有找到导致MCU跑死的必发路径,询问原厂FAE说可能是cache有问题,所以即使复位NRST管脚也不会重新加载cache,单问题是什么情况会导致cache异常,除cache外还有没有其他可能异常点; 综合看起来像是硬件上出问题了,这种情况还是第一次遇到。 以上,请各路大神帮忙看一下什么问题,谢谢!
1351浏览量 2回复量 关注量 -
问GD32F305设置主频
设置主频为60M怎么设置,用内部8M倍频,但PLL中没有15倍频,选择PLL1或PLL2,然后配置好像有问题,仿真卡在了时钟初始化,求该如何配置?
7499浏览量 2回复量 关注量 -
GD32F305独立看门狗怎么写 sos
该怎么写,我套用野火STM32的独立看门狗写法,每次在LED1灯闪后按按键LED2灯能亮,而且我的溢出时间应该是10s喂狗后LED灯2应该能亮10s呀?不知道啥原因
2956浏览量 0回复量 关注量 -
GD32F305的独立看门狗的溢出时间计算公式是什么嘞
GD32和STM32的独立看门狗的溢出时间计算公式不是一样的吧,我用STM32的设置预分频器值64,重装载值625,溢出时间应该是1s,但我的LED灯是1s翻转,初始化看门狗后不停的闪,没有1s,我是需要10s的看门狗,设置3125的重装载值,128的预分频器值不能用
4015浏览量 2回复量 关注量 -
GD32F305VG timer0输入捕获无反应
各位大佬好! 我按照GD32F30x的标准库配置了GD32F305VG 的timer0定时器并开启了输入捕获功能,配置代码如下: void timer_config(void) { /* ----------------------------------------------------------------------- timer_parameter_struct timer_initpara; timer_ic_parameter_struct timer_icinitpara; rcu_periph_clock_enable(RCU_TIMER0); timer_deinit(TIMER0); /*NVIC config*/ nvic_irq_enable(TIMER0_UP_TIMER9_IRQn, 1, 1); nvic_irq_enable(TIMER0_Channel_IRQn, 1, 0); /* TIMER0 configuration */ timer_initpara.prescaler = 119; timer_initpara.alignedmode = TIMER_COUNTER_EDGE; timer_initpara.counterdirection = TIMER_COUNTER_UP; timer_initpara.period = 999; timer_initpara.clockdivision = TIMER_CKDIV_DIV1; timer_initpara.repetitioncounter = 0; timer_init(TIMER0, &timer_initpara); timer_icinitpara.icpolarity = TIMER_IC_POLARITY_RISING; timer_icinitpara.icselection = TIMER_IC_SELECTION_DIRECTTI; timer_icinitpara.icprescaler = TIMER_IC_PSC_DIV1; timer_icinitpara.icfilter = 0x0; timer_input_capture_config(TIMER0, TIMER_CH_0, &timer_icinitpara); timer_input_capture_config(TIMER0, TIMER_CH_3, &timer_icinitpara); /* auto-reload preload enable */ timer_auto_reload_shadow_enable(TIMER0); timer_interrupt_flag_clear(TIMER0,TIMER_INT_FLAG_CH0); timer_interrupt_flag_clear(TIMER0,TIMER_INT_FLAG_CH3); timer_interrupt_enable(TIMER0,TIMER_INT_CH0); timer_interrupt_enable(TIMER0,TIMER_INT_CH3); timer_interrupt_enable(TIMER0,TIMER_INT_UP); timer_enable(TIMER0); } /*中断服务程序*/ void TIMER0_UP_TIMER9_IRQHandler(void) { if ( timer_interrupt_flag_get(TIMER0, TIMER_INT_FLAG_UP) != RESET ) { timer_interrupt_flag_clear(TIMER0, TIMER_INT_FLAG_UP); timer0tick++; } } void TIMER0_Channel_IRQHandler() { if ( timer_interrupt_flag_get(TIMER0, TIMER_INT_FLAG_CH0) != RESET) { timer_interrupt_flag_clear(TIMER0, TIMER_INT_FLAG_CH0); } else if (timer_interrupt_flag_get(TIMER0, TIMER_INT_FLAG_CH3) != RESET){ timer_interrupt_flag_clear(TIMER0, TIMER_INT_FLAG_CH3); rcvcnt++; } } TIMER0 CH0和CH3的GPIO口确定可以正常检测到高低电平,然而软件在运行中,只有更新中断是正常的,输入捕获中断一直触发不了,不知道各位大佬们是否有遇到过此类问题,恳请指点一二,感谢!
3744浏览量 15回复量 关注量