-
GD32H759关于CAN-FD帧配置邮箱过滤器的问题 sos
请问大佬们在使用GD32H759芯片配置CAN FD时,如何正确配置邮箱过滤器呢?手册上说使用FD帧就无法使用接收FIFO进行过滤。
587浏览量 0回复量 关注量 -
有没有GD32H7 的 RGB 接口LVGL 例子,更新屏幕太折腾
前端时间在调试 GD32H7 ,可是发现使用TLI 时 还是存在问题,调了很久最后放弃了 由于H7 的架构 有多种内存块, 使用不当就存在问题 开始使用外部RAM存放显存, 一直没成功, 后来没办法使用内部RAM 单显存测试,还是不行,屏幕显示经常有马赛克, 感觉这个TLI 配置起来太麻烦了 有TLI 有2个图层 , 使用的时候 即使用一个图层 ,2个图层还是必须要都要配置,不配置还不行 因为2个图层后面有个混合 更新输出的时候 也比较扯。 在使用LVGL 时,使用单格全屏显示缓存,我配置了TLI 的2个图层,仅使用1个图层输出, 然后再输出时使用 [color=#dadada][backcolor=#1e1e1e][font=Consolas,][color=#dcdcaa]tli_reload_config[/color][color=#b4b4b4]([/color][color=#dadada]TLI_FRAME_BLANK_RELOAD_EN[/color][color=#b4b4b4]);[/color] [/font][/backcolor][/color] 来触发TLI更新输出,但是有问题,无法显示, 这就很扯,首先也不知道什么时候更新完成?然后调用这个没有效果 有没有H7 的LGVL的例子学习一下?
2657浏览量 15回复量 关注量 -
请教下GD32H7系列的外部SRAM读写 EXMC初始化问题 赏300家园币
EXMC初始化之后,对外部SRAM的操作没有效果,以下是代码部分(nor_region传的是EXMC_BANK0_NORSRAM_REGION0)。 请大佬们看看是什么问题。 void exmc_norflash_init(uint32_t nor_region) { exmc_norsram_parameter_struct nor_init_struct; exmc_norsram_timing_parameter_struct nor_timing_init_struct; gpio_deinit(GPIOB); gpio_deinit(GPIOD); gpio_deinit(GPIOE); gpio_deinit(GPIOF); gpio_deinit(GPIOG); exmc_norsram_deinit(nor_region); /* EXMC clock enable */ rcu_periph_clock_enable(RCU_EXMC); /* GPIO clock enable */ rcu_periph_clock_enable(RCU_GPIOB); rcu_periph_clock_enable(RCU_GPIOD); rcu_periph_clock_enable(RCU_GPIOE); rcu_periph_clock_enable(RCU_GPIOF); rcu_periph_clock_enable(RCU_GPIOG); /* configure GPIO D[0-15] */ gpio_af_set(GPIOD, GPIO_AF_12, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15); gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15); gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15); gpio_af_set(GPIOE, GPIO_AF_12, GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); gpio_mode_set(GPIOE, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); /* configure GPIO A[0-23] */ gpio_af_set(GPIOF, GPIO_AF_12, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); gpio_mode_set(GPIOF, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); gpio_output_options_set(GPIOF, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); gpio_af_set(GPIOG, GPIO_AF_12, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5); gpio_mode_set(GPIOG, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5); gpio_output_options_set(GPIOG, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5); gpio_af_set(GPIOD, GPIO_AF_12, GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13); gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13); gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13); gpio_af_set(GPIOE, GPIO_AF_12, GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6); gpio_mode_set(GPIOE, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6); gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6); /* configure NOE NWE */ gpio_af_set(GPIOD, GPIO_AF_12, GPIO_PIN_4 | GPIO_PIN_5); gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_4 | GPIO_PIN_5); gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_4 | GPIO_PIN_5); /* configure NBL0-1 */ gpio_af_set(GPIOE, GPIO_AF_12, GPIO_PIN_0 | GPIO_PIN_1); gpio_mode_set(GPIOE, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_0 | GPIO_PIN_1); gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_0 | GPIO_PIN_1); /* configure EXMC NE0*/ gpio_af_set(GPIOD, GPIO_AF_12, GPIO_PIN_7); gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_7); gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_7); /* configure CLK and NWAIT */ gpio_af_set(GPIOD, GPIO_AF_12, GPIO_PIN_3 | GPIO_PIN_6); gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_3 | GPIO_PIN_6); gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, GPIO_PIN_3 | GPIO_PIN_6); exmc_norsram_struct_para_init(&nor_init_struct); nor_timing_init_struct.asyn_access_mode = EXMC_ACCESS_MODE_A; nor_timing_init_struct.syn_data_latency = EXMC_DATALAT_6_CLK; nor_timing_init_struct.syn_clk_division = EXMC_SYN_CLOCK_RATIO_6_CLK; nor_timing_init_struct.bus_latency = 5; nor_timing_init_struct.asyn_data_setuptime = 80; nor_timing_init_struct.asyn_address_holdtime = 10; nor_timing_init_struct.asyn_address_setuptime = 10; /* configure EXMC bus parameters */ nor_init_struct.norsram_region = nor_region; nor_init_struct.address_data_mux = DISABLE; nor_init_struct.memory_type = EXMC_MEMORY_TYPE_SRAM; nor_init_struct.databus_width = EXMC_NOR_DATABUS_WIDTH_16B; nor_init_struct.burst_mode = DISABLE; nor_init_struct.nwait_polarity = EXMC_NWAIT_POLARITY_LOW; nor_init_struct.nwait_config = EXMC_NWAIT_CONFIG_BEFORE; nor_init_struct.memory_write = ENABLE; nor_init_struct.nwait_signal = DISABLE; nor_init_struct.extended_mode = DISABLE; nor_init_struct.asyn_wait = DISABLE; nor_init_struct.write_mode = EXMC_ASYN_WRITE; nor_init_struct.cram_page_size = EXMC_CRAM_AUTO_SPLIT; nor_init_struct.read_write_timing = &nor_timing_init_struct; nor_init_struct.write_timing = &nor_timing_init_struct; exmc_norsram_init(&nor_init_struct); exmc_norsram_enable(nor_region); }
6888浏览量 4回复量 关注量 -
关于GD32H757 ADC定时器触发+DMA 配置后DMA的数据不更新 sos
void ADC_rcu_config(void) { /* enable GPIO clock */ rcu_periph_clock_enable(RCU_GPIOA); /* enable ADC clock */ rcu_periph_clock_enable(RCU_ADC0); /* enable DMA clock */ rcu_periph_clock_enable(RCU_DMA0); rcu_periph_clock_enable(RCU_DMAMUX); /* enable trigsel clock */ rcu_periph_clock_enable(RCU_TRIGSEL); /* enable timer1 clock */ rcu_periph_clock_enable(RCU_TIMER1); rcu_timer_clock_prescaler_config(RCU_TIMER_PSC_MUL4); } /*! \brief configure the GPIO peripheral \param[in] none \param[out] none \retval none */ void ADC_GPIO_Config(void) { /* config the GPIO as analog mode */ /* */ gpio_mode_set(GPIOA, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, AirPress_PIN | IExpValve_PIN); } /*! \brief configure the TIMER peripheral \param[in] none \param[out] none \retval none */ void timer_config(void) { timer_oc_parameter_struct timer_ocintpara; timer_parameter_struct timer_initpara; /* enable trigsel clock */ rcu_periph_clock_enable(RCU_TRIGSEL); /* enable timer1 clock */ rcu_periph_clock_enable(RCU_TIMER1); rcu_timer_clock_prescaler_config(RCU_TIMER_PSC_MUL4); /* TIMER1 configuration */ timer_initpara.prescaler = 300-1; timer_initpara.alignedmode = TIMER_COUNTER_EDGE; timer_initpara.counterdirection = TIMER_COUNTER_UP; timer_initpara.period = 500-1; timer_initpara.clockdivision = TIMER_CKDIV_DIV1; timer_initpara.repetitioncounter = 0; timer_init(TIMER1, &timer_initpara); /* CH0 configuration in PWM mode1 */ timer_ocintpara.ocpolarity = TIMER_OC_POLARITY_HIGH; timer_ocintpara.outputstate = TIMER_CCX_ENABLE; timer_channel_output_config(TIMER1, TIMER_CH_1, &timer_ocintpara); timer_channel_output_pulse_value_config(TIMER1, TIMER_CH_1, 100); timer_channel_output_mode_config(TIMER1, TIMER_CH_1, TIMER_OC_MODE_PWM1); timer_channel_output_shadow_config(TIMER1, TIMER_CH_1, TIMER_OC_SHADOW_DISABLE); } /*! \brief configure the DMA peripheral \param[in] none \param[out] none \retval none */ void ADC_DMA_Config(void) { /* ADC_DMA_channel configuration */ dma_single_data_parameter_struct dma_single_data_parameter; /* ADC DMA_channel configuration */ dma_deinit(DMA0, DMA_CH0); /* initialize DMA single data mode */ dma_single_data_parameter.request = DMA_REQUEST_ADC0; dma_single_data_parameter.periph_addr = (uint32_t)(&ADC_RDATA(ADC0)); dma_single_data_parameter.periph_inc = DMA_PERIPH_INCREASE_DISABLE; dma_single_data_parameter.memory0_addr = (uint32_t)(&adc_value); dma_single_data_parameter.memory_inc = DMA_MEMORY_INCREASE_ENABLE; dma_single_data_parameter.periph_memory_width = DMA_PERIPH_WIDTH_32BIT; dma_single_data_parameter.direction = DMA_PERIPH_TO_MEMORY; dma_single_data_parameter.number = 2; dma_single_data_parameter.priority = DMA_PRIORITY_HIGH; dma_single_data_mode_init(DMA0, DMA_CH0, &dma_single_data_parameter); /* enable DMA circulation mode 循环模式*/ dma_circulation_enable(DMA0, DMA_CH0); /* enable DMA channel */ dma_channel_enable(DMA0, DMA_CH0); } /*! \brief configure the ADC peripheral \param[in] none \param[out] none \retval none */ void ADC_Config(void) { /* reset ADC */ adc_deinit(ADC0); /* ADC clock config */ adc_clock_config(ADC0, ADC_CLK_SYNC_HCLK_DIV6); /* ADC contineous function enable */ adc_special_function_config(ADC0, ADC_CONTINUOUS_MODE, DISABLE); /* ADC scan mode enable */ adc_special_function_config(ADC0, ADC_SCAN_MODE, ENABLE); /* ADC resolution config */ adc_resolution_config(ADC0, ADC_RESOLUTION_14B); /* ADC data alignment config */ adc_data_alignment_config(ADC0, ADC_DATAALIGN_RIGHT); /* ADC channel length config */ adc_channel_length_config(ADC0, ADC_REGULAR_CHANNEL, 2); /* ADC regular channel config */ adc_regular_channel_config(ADC0, 0, ADC_CHANNEL_15, 240); adc_regular_channel_config(ADC0, 1, ADC_CHANNEL_14, 240); /* ADC trigger config */ adc_external_trigger_config(ADC0, ADC_REGULAR_CHANNEL, EXTERNAL_TRIGGER_RISING); /* clear the ADC flag */ adc_interrupt_flag_clear(ADC0, ADC_INT_FLAG_EOC); adc_interrupt_flag_clear(ADC0, ADC_INT_FLAG_EOIC); /* ADC DMA function enable */ adc_dma_request_after_last_enable(ADC0); adc_dma_mode_enable(ADC0); /* enable ADC interface */ adc_enable(ADC0); /* wait for ADC stability */ LCD_delay_ms(1); /* ADC calibration mode config */ adc_calibration_mode_config(ADC0, ADC_CALIBRATION_OFFSET_MISMATCH); /* ADC calibration number config */ adc_calibration_number(ADC0, ADC_CALIBRATION_NUM1); /* ADC calibration and reset calibration */ adc_calibration_enable(ADC0); } /*! \brief configure the TRIGSEL peripheral \param[in] none \param[out] none \retval none */ void trigsel_config(void) { trigsel_init(TRIGSEL_OUTPUT_ADC0_INSTRG, TRIGSEL_INPUT_TIMER1_CH1); } /** \brief configure the nested vectored interrupt controller \param[in] none \param[out] none \retval none */ void nvic_config(void) { nvic_irq_enable(ADC0_1_IRQn, 10, 0); } void BSP_ADC_Init(void) { ADC_rcu_config(); ADC_GPIO_Config(); timer_config(); trigsel_config(); // nvic_config(); ADC_DMA_Config(); ADC_Config(); timer_enable(TIMER1); } 配置完后 ,数组里没有数据 ,当时测试时也打开过中断,但中断没有触发,请坛友帮忙看看
1022浏览量 0回复量 关注量 -
GD32H7移植FatFs读写SD卡,电脑上看不到文件
通过H7往SD卡写入txt文件,使用读卡器在电脑上看不到该文件,但是在H7上始终可以读取文件,并且也可以查看文件信息;同理,在电脑上创建的文件,在H7上也无法搜索和查看到。不知道是什么原因。
1203浏览量 1回复量 关注量