问答

汇集网友智慧,解决技术难题

21ic问答首页 - TAG - 更新
  • 有没有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的例子学习一下?

    使用 更新 接口 LVGL RGB GD32H7

    785浏览量 1回复量 关注量
  • 关于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); } 配置完后 ,数组里没有数据 ,当时测试时也打开过中断,但中断没有触发,请坛友帮忙看看

    TI ADC 定时器触发 GD32H7 DMA 更新

    436浏览量 0回复量 关注量
  • DSP28335编程问题:正弦波查找表中相位值不更新 sos

    * * main.c * * Created on: 2023年10月30日 * Author: DELL */ #include "DSP2833x_Device.h" // DSP2833x Headerfile Include File #include "DSP2833x_Examples.h" // DSP2833x Examples Include File #define TABLE_SIZE 128 // 查找表的大小 #define TABLE_SCALE 32767 // 查找表的缩放因子 typedef unsigned long ulong; float b; float c; float phase=20; float sin=0; int sin_table[TABLE_SIZE] = { 0, 1608, 3212, 4808, 6393, 7962, 9512, 11039, 12539, 14010, 15446, 16846, 18204, 19519, 20787, 22005, 23170, 24279, 25329, 26319, 27245, 28105, 28898, 29621, 30273, 30852, 31356, 31785, 32137, 32412, 32609, 32728, 32767, 32728, 32609, 32412, 32137, 31785, 31356, 30852, 30273, 29621, 28898, 28105, 27245, 26319, 25329, 24279, 23170, 22005, 20787, 19519, 18204, 16846, 15446, 14010, 12539, 11039, 9512, 7962, 6393, 4808, 3212, 1608,0, -1608, -3212, -4808, -6393, -7962, -9512, -11039, -12539, -14010, -15446, -16846, -18204, -19519, -20787, -22005, -23170, -24279, -25329, -26319, -27245, -28105, -28898, -29621, -30273, -30852, -31356, -31785, -32137, -32412, -32609, -32728, -32767, -32728, -32609, -32412, -32137, -31785, -31356, -30852, -30273, -29621, -28898, -28105, -27245, -26319, -25329, -24279, -23170, -22005, -20787, -19519, -18204, -16846, -15446, -14010, -12539, -11039, -9512, -7962, -6393, -4808, -3212, -1608 }; void main() { while(1) {int a=phase; sin=sin_table[a] ; } } 各位,问大家个问题。我用ccs的watch expression功能在线修改phase得值时,sin值并不会随着改变。哪里有问题吗?

    更新 相位 DSP28335 正弦波 编程 DSP

    886浏览量 0回复量 关注量
  • 删帖 sos

    [i=s] 本帖最后由 cainiao518 于 2024-3-29 13:36 编辑 [/i] 删帖

    更新 原因 物联网 固件 ESP

    3538浏览量 0回复量 关注量