-
GD32f305使用官网USB Host例程出现问题
GD32f305使用官网USBHost例程,插入U盘后,一直进入中断,并且中断标志由断开连接中断
2025-01-23 20 -
vscode+Jlink单步调试出错,cortex-debug不受支持,怎么回事?
launch文件有没有问题呢?是自动生成的我点击了1、2,报出了这个错误,见3
2024-11-22 10 -
使用 DMA写flash后,读取数据出现错位现象
使用DMA写flash后,读取数据出现错位现象,读到的buffer的第一节总为0,从第二字节开始才是正常数据。只能在24bit地址发送完后,再发一个DUMMY_BYTE(无效字节),才能bufferr接收数据。一但调“dma_channel_enable(DMA1,DMA_CH3)这个使能”后就出现上述现象。每次读取数据时都要先发一个DUMMY_BYTE才能正确接收。若上电不调“dma_channel_enable(DMA1,DMA_CH3)“接收都是正常的。使用的MCU是GD32F470VIT6,SPIFLAH是GD25Q40C.请各位大佬帮忙分析下。以下为SPI代码DMA配置voiddma_init(uint8_t*data_buffer,uint32_tdata_length){dma_single_data_parameter_structdma_init_struct;rcu_periph_clock_enable(RCU_DMA1);//DMA发送dma_deinit(DMA1,DMA_CH3);//DMA初始化参数设置dma_init_struct.direction=DMA_MEMORY_TO_PERIPH;dma_init_struct.memory0_addr=(uint32_t)data_buffer;dma_init_struct.memory_inc=DMA_MEMORY_INCREASE_ENABLE;dma_init_struct.periph_addr=(uint32_t)&SPI_DATA(SPI0);dma_init_struct.periph_inc=DMA_PERIPH_INCREASE_DISABLE;dma_init_struct.periph_memory_width=DMA_MEMORY_WIDTH_8BIT;dma_init_struct.number=data_length;dma_init_struct.circular_mode=DMA_CIRCULAR_MODE_DISABLE;dma_init_struct.priority=DMA_PRIORITY_MEDIUM;dma_single_data_mode_init(DMA1,DMA_CH3,&dma_init_struct);dma_channel_subperipheral_select(DMA1,DMA_CH3,DMA_SUBPERI3);//使能DMA中断通道nvic_irq_enable(DMA1_Channel3_IRQn,0,0);//配置DMA中断使能位//dma_circulation_disable(DMA1,DMA_CH3);dma_interrupt_enable(DMA1,DMA_CH3,DMA_CHXCTL_FTFIE);}DMA发送int8_tspi_dma_data_send(uint8_t*pbuffer,uint32_twrite_addr,uint16_tnum_byte_to_write){/*enablethewriteaccesstotheflash*/spi_flash_write_enable();/*selecttheflash:chipselectlow*/SPI_FLASH_CS_LOW();/*send"writetomemory"instructi
2024-11-07 18 -
GD32F303RCT6 USART0的空闲中断进不去,仿真打断点也进不去中断
intmain(void){//¿ÉÒÔ×öµ½´«ÊäÊý¾Ý³öÀ´£¬¶¨µã´«ÊäÊý¾Ý³öÀ´uint32_tStatus2=0;uint32_tStatus3;uint16_tx;dma_parameter_structdma_init_struct2;gpio_pin_remap_config(GPIO_SWJ_NONJTRST_REMAP,ENABLE);//ÏÂÔØ¿ÚNJTRSTÒý½Åµ±×öÆÕͨI/O¿Úrcu_ahb_clock_config(RCU_AHB_CKSYS_DIV1);systick_config();//1mssystickgpio_config();//PA1,PA2,PA3¹Ü½ÅÅäÖÃ/************************************************///UART0_initrcu_periph_clock_enable(RCU_AF);//Need!!!!//usart_halfduplex_enable(USART0);rcu_periph_clock_enable(RCU_USART0);//ʹÄÜUSART0ʱÖÓgpio_pin_remap_config(GPIO_USART0_REMAP,ENABLE);usart_deinit(USART0);//³õʼ»¯//¸´Î»Ê±ÖÓusart_baudrate_set(USART0,19200U);//¶¨Ò岨ÌØÂÊusart_receive_config(USART0,USART_RECEIVE_ENABLE);//½ÓÊÕʹÄÜusart_transmit_config(USART0,USART_TRANSMIT_ENABLE);//·¢ËÍʹÄÜusart_interrupt_enable(USART0,USART_INT_TC);//·¢ËÍÍê³ÉÖжÏusart_interrupt_enable(USART0,USART_INT_IDLE);//¿ÕÏÐÖжÏusart_enable(USART0);//Ä£¿éʹÄÜUSART_INT_TCnvic_irq_enable(USART0_IRQn,0,1);RX0_DMAquest_StartOrInit();TX0_DMAquest_StartOrInit();usart_dma_receive_config(USART0,USART_DENR_ENABLE);usart_dma_transmit_config(USART0,USART_DENT_ENABLE);//NVICEXTI_config();//timer_interrupt_flag_clear(TIMER0,TIMER_INT_FLAG_CH0);//timer_interrupt_enable(TIMER0,TIMER_INT_CH0);//usart_dma_transmit_config(USART0,USART_DENT_ENABLE);//usart_dma_receive_config(USART0,USART_DENR_ENABLE);/******************************************************//*configureDMAmode*///dma_circulation_disable(DMA1,DMA_
2024-11-06 10 -
gd32f303cct6有源晶振无法稳定问题
gd32f303cct6使用16M有源晶振输入到OSCIN引脚后在启动时候HXTALSTB始终无法值1,然后卡死在system_gd32f30x.c文件中iffail的这个死循环里,是这款单片机不支持有源晶振吗,使用示波器测量过芯片OSCIN引脚有峰峰值为1V的16MHZ波形,并且稳定,圆角的方波
2024-10-30 13 -
gd55B01GE超出64MB读写异常
gd55B01GE在低于64MB的地址读写均正常,使用4字节模式,但地址超过64M(即0x4000000)后的地址就读写异常了,有的地址能读写出来,有的不行,是地址有保护吗,我试着解除了保护也不行,有没有大佬知道怎么回事,如何解决
2024-08-06 7 -
GD32F103ZET6内部ADC2有没有
使用官方的库函数,ADC2根本无法初始化dma_parameter_structdma_data_parameter;rcu_periph_clock_enable(RCU_GPIOF);rcu_periph_clock_enable(RCU_ADC2);rcu_periph_clock_enable(RCU_DMA1);/*配置PF*/gpio_init(GPIOF,GPIO_MODE_AIN,GPIO_OSPEED_50MHZ,GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);/*ADCDMA_channelconfiguration*/dma_deinit(DMA1,DMA_CH4);/*initializeDMAsingledatamode*/dma_data_parameter.periph_addr=(uint32_t)(&ADC_RDATA(ADC2));dma_data_parameter.periph_inc=DMA_PERIPH_INCREASE_DISABLE;dma_data_parameter.memory_addr=(uint32_t)(&ADC2_ConvertedValue);dma_data_parameter.memory_inc=DMA_MEMORY_INCREASE_ENABLE;dma_data_parameter.periph_width=DMA_PERIPHERAL_WIDTH_16BIT;dma_data_parameter.memory_width=DMA_MEMORY_WIDTH_16BIT;dma_data_parameter.direction=DMA_PERIPHERAL_TO_MEMORY;dma_data_parameter.number=M1*N1;dma_data_parameter.priority=DMA_PRIORITY_HIGH;dma_init(DMA1,DMA_CH4,&dma_data_parameter);dma_circulation_enable(DMA1,DMA_CH4);/*enableDMAchannel*/dma_channel_enable(DMA1,DMA_CH4);/*ADC配置*/adc_deinit(ADC2);/*ADCmodeconfig*/adc_mode_config(ADC_MODE_FREE);/*ADCcontineousfunctionenable*/adc_special_function_config(ADC2,ADC_CONTINUOUS_MODE,ENABLE);/*ADCscanmodedisable*/adc_special_function_config(ADC2,ADC_SCAN_MODE,ENABLE);/*ADCdataalignmentconfig*/adc_data_alignment_config(ADC2,ADC_DATAALIGN_RIGHT);/*ADCchannellengthconfig*/adc_channel_length_config(ADC2,ADC_REGULAR_CHANNEL,M1);/*ADC0规则通道配置*/adc_regular_channel_config(ADC2,0,ADC_CHANNEL_7,ADC_SAMPLETIME_239POINT5);adc_regular_channel_config(ADC2,1,ADC_CHANNEL_8,ADC_SAMPLETIME_239POINT5);adc_regular_channel_config(ADC2,2,ADC_CHA
2024-06-25 18 -
MM32SPIN系统高级定时器输入捕获 没办法进入TIM_CC_IRQH中断
MM32SPIN系统单片机高级定时器输入捕获没办法进入TIM_CC_IRQH中断voidRemote_1(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB,ENABLE);//使能GPIOB时钟GPIO_PinAFConfig(GPIOB,GPIO_PinSource4,GPIO_AF_7);//GPIOB4复用为TIM1//GPIOGPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//下拉输入GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);}voidRemote_Init(uint16_tperiod,uint8_tprescaler){TIM_TimeBaseInitTypeDefTIM_StructInit;TIM_ICInitTypeDefTIM_ICInitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);TIM_TimeBaseStructInit(&TIM_StructInit);TIM_StructInit.TIM_Period=period;TIM_StructInit.TIM_Prescaler=prescaler;TIM_StructInit.TIM_ClockDivision=TIM_CKD_DIV1;TIM_StructInit.TIM_CounterMode=TIM_CounterMode_Up;TIM_StructInit.TIM_RepetitionCounter=0;TIM_TimeBaseInit(TIM1,&TIM_StructInit);//TIM1输入捕获参数设置TIM_ICInitStructure.TIM_Channel=TIM_Channel_2;//CC2S=01选择输入端IC2映射到TI1上TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;//上升沿捕获TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;//映射到TI1上TIM_ICInitStructure.TIM_ICFilter=0x0;TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;//配置输入分频,不分频TIM_ICInit(TIM1,&TIM_ICInitStructure);TIM_ARRPreloadConfig(TIM1,ENABLE);TIM_ITConfig(TIM1,TIM_IT_CC2|TIM_IT_Update,ENABLE);TIM_CtrlPWMOutputs(TIM1,ENABLE);TIM_Cmd(TIM1,ENABLE);}voidRemote_2(void){NVIC_InitTypeDefNVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel=TIM1_BRK_UP_TRG_COM_IRQn;//定时中断3NVIC_InitStructure.NVIC_IRQChannelPriority=1;//中断优
2024-06-17 8 -
MM32G0001 PA0引脚复用USART1_RX失灵,各位有没有遇到过
如题
2024-01-13 11 -
st移植到GD32f450zgt6 CAN初始化不通过
st的程序移植到GD32f450zgt6can在初始化那里不通过主状态寄存器没有反应有人遇到过这个问题没
2023-09-18 6 -
不能删除提问吗
本帖最后由zhaoxwic于2023-3-3121:06编辑不能删除提问吗
2023-03-31 3 -
如何使用Clion对合泰HT32系列芯片进行开发?
近期开始使用HT32芯片,了解到它是ARM架构,由于近期一直使用CLion进行嵌入式开发,故决定继续使用Clion开发HT32,想了解一下有无已经使用过CLion进行合泰芯片开发的呢如果有的话,可否分享下开发经验?比如如何使用stlink进行下载,以及其config文件如何配置,谢谢!
2023-03-07 3 -
关于MM32F031 q版正常和n版不工作
使用q版配置工程文件,编译后下载到q版芯片可以正常运行;但如果下载到n版或o版,不能正常运行。查了下datasheet,里面只有最后型号命名提到q和n是指coreversion,但没提这2个版本具体区别。是否需要使用对应的启动文件:比如system_MM32F031x4x6_q.c和startup_MM32F031x4x6_q.s,需要更换,其它库文件也需要更换?目前没找到n版和o版的这方面资料。如何才能让n版和o版也能工作起来?
2023-01-09 12 -
GD的MCU内核是裁剪版本吗?
大家好,我使用GD32F150,对IO脚操作如下:while(1){GPIO_BOP(GPIOB)=GPIO_PIN_6;GPIO_TG(GPIOB)=GPIO_PIN_6;GPIO_BC(GPIOB)=GPIO_PIN_6;}单步调试发现,GPIO_BOP操作后,万用表测3.3VGPIO_BC操作后,测到0.0V。说明这两个操作没有问题,但GPIO_TG,没有变化,这个操作应该是切换输出,1应该变0,0变1。但实测没有变化,不知道GD的内核是不是裁剪了一些功能和寄存器,做了个裁剪版本?请问有哪位大侠碰到类似问题吗?
2022-11-16 18 -
GD32F105RB 使用官方USB例程,运行至枚举状态机时进入死循环
将外部晶振修改为8M之后,打印主频96M,一切正常,但是USB的时钟源是未进行修改,应为我主频没变,时钟配置如下voidusb_rcu_config(void){uint32_tsystem_clock=rcu_clock_freq_get(CK_SYS);printf("系统时钟为:%d\n",system_clock);if(48000000U==system_clock){usbfs_prescaler=RCU_CKUSB_CKPLL_DIV1;timer_prescaler=3U;}elseif(72000000U==system_clock){usbfs_prescaler=RCU_CKUSB_CKPLL_DIV1_5;timer_prescaler=5U;printf("系统时钟为:%d\n",system_clock);}elseif(96000000U==system_clock){usbfs_prescaler=RCU_CKUSB_CKPLL_DIV2;timer_prescaler=7U;}else{/*reserved*/}rcu_usb_clock_config(usbfs_prescaler);rcu_periph_clock_enable(RCU_USBFS);}但是运行至枚举状态机时就卡死在死循环不出来,这是为什么呢进入caseHOST_DEV_ENUM:之后:调用usbh_devdesc_get(uhost,8U))-----》》》usbh_ctl_handler(uhost);------》》》if(URB_DONE==usbh_urb_wait(uhost,uhost->control.pipe_in_num,DATA_STAGE_TIMEOUT)){uhost->control.ctl_state=CTL_STATUS_OUT;}就卡死在这个等待
2022-10-09 13