-
关于GD32F103VGT6无法使用串口3 的问题咨询
本帖最后由tyw于2024-10-2311:35编辑首先描述一下现象:翻译搜索复制在硬件上使用了PC10(TXD)和PC11(RXD)两个引脚,这两个引脚是可以使用USART3以及UART3的,目前可以正常使用USART2进行数据收发的工作,但是无法使用UART3进行数据收发,仿真器连接的时候可以看到UART3的寄存器可以正常的初始化且配置正确,说明UART3的时钟和引脚设置应该是没有问题的,也可以正常进入串口发送的函数,但是数据传输到发送函数后就没法正常传输出来,这个问题很奇怪,不知道大家是否遇到,下面是串口3的初始化的代码。硬件原理图如下:相关的代码如下:请问大家有有没有遇到相同的情况?
2024-10-23 2 -
新手小白,问一下按键控制灯的问题
我写了一段按键程序控制一颗灯,芯片IO口已经设置弱上拉,VCC输出5V,我用仿真器调试的时候都是正常。但是烧录芯片后焊接到器具上,出现了一上电灯就被点亮的问题,控制依旧能控制,但是上电就有概率自动被点亮,且点亮的次数更多。请问有可能是什么原因出现的这个BUG?
2024-09-27 33 -
lksscope显示错乱的问题
这是使用lksscopev1.3.7的RTT数据,我在代码中想要观测的数据是两相电流加角度。但是最后显示的是:(角度一会儿跑到data0,一会儿跑到data1,一会儿到data2了)//程序中代码是这样写的
2024-09-20 4 -
使用三个定时器输出PWM卡死
请教各位大牛一个问题,卡住我几天了。我使用如下定时器配置PWM,如下示:PA6->PWM0tim1_cha(4)PA7->PWM1tim2_cha(5)PB0->PWM2tim3_ch1b(2)在应行如下初始化代码后,直接卡死了,请问是什么原因呢voidpwm_init(){Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);//端口外设时钟使能TimerPortCfg(PWM0);TimerPortCfg(PWM1);TimerPortCfg(PWM2);Timer1Cfg(100,PWM_DUTY);Bt_M23_EnPWM_Output(TIM1,TRUE,FALSE);//端口输出使能Timer2Cfg(100,PWM_DUTY);Bt_M23_EnPWM_Output(TIM2,TRUE,FALSE);//端口输出使能Timer3Cfg(100,PWM_DUTY);Tim3_M23_EnPWM_Output(TRUE,FALSE);//端口输出使能Bt_M23_Run(TIM2);//运行。Bt_M23_Run(TIM1);//运行。Tim3_M23_Run();//运行。}完整模块代码发下:#include"pwm.h"#include"timer3.h"#include"bt.h"#include"gpio.h"#include"motor.h"volatilecharpwm_duty=95;//PA6->PWM0tim1_cha(4)//PA7->PWM1tim2_cha(5)或tim3_ch0b(4)//PB0->PWM2tim3_ch1b(2)typedefenum{PWM0=0u,PWM1,PWM2,}pwm_index_t;/********************************************************************************中断服务函数******************************************************************************/voidTim1_IRQHandler(void){//Timer1模式23更新中断if(TRUE==Bt_GetIntFlag(TIM1,BtUevIrq)){Bt_M23_CCR_Set(TIM1,BtCCR0A,100-pwm_duty);//设置通道A比较值Bt_ClearIntFlag(TIM1,BtUevIrq);//清中断标志}}voidTim2_IRQHandler(void){//Timer2模式23更新中断if(TRUE==Bt_GetIntFlag(TIM2,BtUevIrq)){Bt_M23_CCR_Set(TIM2,BtCCR0A,100-pwm_duty);//设置通道A比较值Bt_ClearIntFlag(TIM2,BtUevIrq);//清中断标志}}voidTim3_IRQHandler(void){//Timer3模式23更新中断if(TRUE==Tim3_GetIntFlag(Tim3UevIrq)){Tim3_M23_CCR_Set(Tim3CCR1B,100-pwm_duty);//设置CH1通道B比较值Tim3_ClearIntFlag(Tim3UevIrq);/
2024-09-14 5 -
使用两个定时器输出PWM卡死
请教各位大牛一个问题,卡住我几天了。我使用如下定时器配置PWM,如下示:PA6->PWM0tim1_cha(4)PA7->PWM1tim2_cha(5)PB0->PWM2tim3_ch1b(2)在应行如下初始化代码后,直接卡死了,请问是什么原因呢voidpwm_init(){Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);//端口外设时钟使能TimerPortCfg(PWM0);TimerPortCfg(PWM1);TimerPortCfg(PWM2);Timer1Cfg(100,PWM_DUTY);Bt_M23_EnPWM_Output(TIM1,TRUE,FALSE);//端口输出使能Timer2Cfg(100,PWM_DUTY);Bt_M23_EnPWM_Output(TIM2,TRUE,FALSE);//端口输出使能Timer3Cfg(100,PWM_DUTY);Tim3_M23_EnPWM_Output(TRUE,FALSE);//端口输出使能Bt_M23_Run(TIM2);//运行。Bt_M23_Run(TIM1);//运行。Tim3_M23_Run();//运行。}完整模块代码发下:#include"pwm.h"#include"timer3.h"#include"bt.h"#include"gpio.h"#include"motor.h"volatilecharpwm_duty=95;//PA6->PWM0tim1_cha(4)//PA7->PWM1tim2_cha(5)或tim3_ch0b(4)//PB0->PWM2tim3_ch1b(2)typedefenum{PWM0=0u,PWM1,PWM2,}pwm_index_t;/********************************************************************************中断服务函数******************************************************************************/voidTim1_IRQHandler(void){//Timer1模式23更新中断if(TRUE==Bt_GetIntFlag(TIM1,BtUevIrq)){Bt_M23_CCR_Set(TIM1,BtCCR0A,100-pwm_duty);//设置通道A比较值Bt_ClearIntFlag(TIM1,BtUevIrq);//清中断标志}}voidTim2_IRQHandler(void){//Timer2模式23更新中断if(TRUE==Bt_GetIntFlag(TIM2,BtUevIrq)){Bt_M23_CCR_Set(TIM2,BtCCR0A,100-pwm_duty);//设置通道A比较值Bt_ClearIntFlag(TIM2,BtUevIrq);//清中断标志}}voidTim3_IRQHandler(void){//Timer3模式23更新中断if(TRUE==Tim3_GetIntFlag(Tim3UevIrq)){Tim3_M23_CCR_Set(Tim3CCR1B,100-pwm_duty);//设置CH1通道B比较值Tim3_ClearIntFlag(Tim3UevIrq);/
2024-09-14 8 -
hc32f460 can导致单片机复位
can使能后发送数据,如果can总线上没有其他节点接收数据,单片机直接重启。接上接收设备后,单片机正常工作。can配置代码如下//CANConfigstaticvoidApp_CANCfg(void){stc_can_init_tstcCanInit;/*************************ConfigureCAN1***************************/stc_can_filter_config_tastcFilter1[1U]={{0x1UL,0x0000UL,CAN_ID_STD},};/*InitializesCAN.*/(void)CAN_StructInit(&stcCanInit);stcCanInit.stcBitCfg.u32Prescaler=12U;stcCanInit.stcBitCfg.u32TimeSeg1=5U;stcCanInit.stcBitCfg.u32TimeSeg2=3;stcCanInit.stcBitCfg.u32SJW=3;stcCanInit.pstcFilter=astcFilter1;stcCanInit.u16FilterSelect=CAN_FILTER1;stcCanInit.u8WorkMode=CAN_WORK_MD_NORMAL;//CAN_WORK_MD_ELB;stcCanInit.u8PTBSingleShotTx=CAN_PTB_SINGLESHOT_TX_ENABLE;stcCanInit.u8STBSingleShotTx=CAN_STB_SINGLESHOT_TX_ENABLE;stcCanInit.u8STBPrioMode=CAN_STB_PRIO_MD_DISABLE;stcCanInit.u8RxWarnLimit=10U;stcCanInit.u8ErrorWarnLimit=15U;stcCanInit.u8RxAllFrame=CAN_RX_ALL_FRAME_DISABLE;stcCanInit.u8RxOvfMode=CAN_RX_OVF_DISCARD_NEW;stcCanInit.u8SelfAck=CAN_SELF_ACK_DISABLE;/*EnableperipheralclockofCAN.*/FCG_Fcg1PeriphClockCmd(FCG1_PERIPH_CAN,ENABLE);(void)CAN_Init(CM_CAN,&stcCanInit);CAN_ExitLocalReset(CM_CAN);/*Enabletheinterrupts,thestatusflagscanberead.*/CAN_IntCmd(CM_CAN,CAN_INT_ALL,DISABLE);CAN_IntCmd(CM_CAN,CAN_INT_ERR_INT|CAN_INT_RX_BUF_WARN|CAN_INT_RX|CAN_INT_BUS_ERR,ENABLE);}
2024-08-27 13 -
GD32单片机芯片的系统时钟我设置了108M,这个有办法测量吗?
单片机芯片的系统时钟是72M、还是108M,这个有办法测量吗?谢谢
2024-07-31 11 -
GD32为什么用PA2代替key按键功能不成功
配置PA4ADC引脚,将PA2代替key功能,一脚接地一脚接PA2,想实现在另一key按键控制oled屏同时(使用了PA1),如果杜邦线连接了地与PA2,可以在oled屏幕上显示读取的ADC值程序如下运行无误但是PA2连接时无法实现预期功能,PA1正常运行请大佬解答~谢谢#include"gd32f30x.h"#include"systick.h"#include#include"oled.h"externuint8_tIntFlag;//进入中断服务程序标志,在EXTI1_IRQHandler()函数置位//定义一个变量来跟踪当前显示的行staticuint8_tcurrentLine=0;//定义一个数组来存储要显示的信息的索引或字符串指针staticconstuint8_tchineseMessages[][2]={{12,0},//{30,1},//{48,2},//{66,3},//{84,4},//{102,5}//};staticuint8_t*englishMessages[]={"HUZHOU","TEL:12345678"};uint16_tadc_value;uint16_tVol_Value;floatVol_Value1;voidadc_config(void){/*resetADC*/adc_deinit(ADC1);///*ADCmodeconfig*/adc_mode_config(ADC_MODE_FREE);/*ADCcontinousfunctionenable*/adc_special_function_config(ADC1,ADC_CONTINUOUS_MODE,ENABLE);/*ADCdataalignmentconfig*/adc_data_alignment_config(ADC1,ADC_DATAALIGN_RIGHT);/*ADCresolusion6B*///adc_resolution_config(ADC1,ADC_RESOLUTION_6B);/*ADCchannellengthconfig*/adc_channel_length_config(ADC1,ADC_REGULAR_CHANNEL,1);/*ADCregularchannelconfig*/adc_regular_channel_config(ADC1,0,ADC_CHANNEL_4,ADC_SAMPLETIME_55POINT5);/*ADCtriggerconfig*/adc_external_trigger_source_config(ADC1,ADC_REGULAR_CHANNEL,ADC0_1_2_EXTTRIG_REGULAR_NONE);adc_external_trigger_config(ADC1,ADC_REGULAR_CHANNEL,ENABLE);/*enableADCinterface*/adc_enable(ADC1);delay_1ms(1);/*ADCcalibrationandresetcalibration*/adc_calibration_enable(ADC1);/*enableADCinterface*///adc_software_trigger_enable(ADC0,ADC_REGULAR_CHANNEL);}intmain(void){rcu_ahb_clock_config(R
2024-07-25 18 -
使用GD32F450的USB-HOST-MSC例程,插上u盘不识别,没有任何反应
自己画的板子,原理图如下:
2024-07-24 6 -
gd32e230 IIC读数据问题
/*sendtheinternalregisteraddressto*/i2c_data_transmit(I2C0,read_address);/*waituntilBTCbitisset*/while(!i2c_flag_get(I2C0,I2C_FLAG_BTC);一直卡在上面请问什么原因?
2024-07-18 17 -
GD的Embedded Builder编译后的文件,能跑运行很缓慢,为什么?
最近看EmbededBuilder更新了GD32F303CC的,就把IAR的一个项目移植到EmbeddedBuilder上,编译都很成功。新版本的EmbeddedBuilder的debug里面好像选不了除gdlink其他的,我就用jlink把它编译好的文件烧录到单片机,然后程序能够运行,但反应很慢,比如有个屏幕显示,比原来IAR的慢了几倍,控制电机(代码里的目标转速完全没改过)转速也只有原来的30%左右,想请问下这是什么情况?
2024-07-11 10 -
平时开发改版方案时需要样品怎么解决?
平时在工作中临时需要新样品找物料,立创上面买的又贵还需要运费,有什么好解决办法?我是来解决这个问题的,需要样品免费安排、送货上们。有在做国巨、顺络、龙腾等品牌代理,只出原装现货。所做的被动元器件齐全,一站式服务,一次全部配齐全。专门过来解决问题的,可以交个朋友需要解决麻烦随时安排13430892184来至电子行业新人的苦恼,在哪里可以给更多工程师们提供服务
2024-07-11 6 -
请问是否有如下函数的源码?
拿到凌欧FOC的例程,阅读代码,发现以下函数只有声明,没有函数的实现请问是因为我的代码不全,缺少这些函数的文件?还是说凌欧本身就不提供这些函数的源码,只是提供了这些函数的库?externs16getMotorDaxisVoltFormObjId(u8t_bObjId);externs16getMotorQaxisVoltFormObjId(u8t_bObjId);
2024-07-02 4 -
求GD32E230K8U6参考设计
需要用到两个IIC接口(一个作为master,另一个作为slave)、调试接口、一个GPIO口做控制信号谢谢!
2024-05-30 13