-
GD32F407使用freeRTOS死机
在GD32F407跑了freeRTOS,串口接收使用了DMA+IDLE中断来实现不定长接收,串口的IDLE中断中接收完数据后,通过事件通知线程执行解析,但是中断中调用xEventGroupSetBitsFromISR函数后就会死机
2024-05-31 56 -
GD32F470 SPI DMA接收
spi2配置没问题,可以正常使用,但是加上dma,发现dma没有开启,有没有大佬告诉我一下,我下面的代码配置哪里有问题,找了好久找不出来,谢谢谢谢!!!uint8_tspi2_tx_buf[6]={0};uint8_tspi2_rx_buf[6]={0};voidDMA0_CH0_Config()//spi——RX{dma_single_data_parameter_structdma_init_spi2_rx;rcu_periph_clock_enable(RCU_DMA0);dma_deinit(DMA0,DMA_CH0);dma_init_spi2_rx.direction=DMA_PERIPH_TO_MEMORY;dma_init_spi2_rx.memory0_addr=(uint32_t)(spi2_rx_buf);//存储器地址dma_init_spi2_rx.memory_inc=DMA_MEMORY_INCREASE_ENABLE;dma_init_spi2_rx.periph_addr=(uint32_t)&SPI_DATA(SPI2);dma_init_spi2_rx.periph_inc=DMA_PERIPH_INCREASE_DISABLE;dma_init_spi2_rx.periph_memory_width=DMA_PERIPH_WIDTH_8BIT;dma_init_spi2_rx.number=sizeof(spi2_rx_buf);dma_init_spi2_rx.priority=DMA_PRIORITY_ULTRA_HIGH;dma_init_spi2_rx.circular_mode=DMA_CIRCULAR_MODE_DISABLE;dma_single_data_mode_init(DMA0,DMA_CH0,&dma_init_spi2_rx);dma_channel_subperipheral_select(DMA0,DMA_CH0,DMA_SUBPERI4);dma_memory_address_config(DMA0,DMA_CH0,DMA_MEMORY_0,(uint32_t)(spi2_rx_buf));//存储器地址dma_transfer_number_config(DMA0,DMA_CH0,sizeof(spi2_rx_buf));dma_channel_enable(DMA0,DMA_CH0);spi_dma_enable(SPI2,SPI_DMA_RECEIVE);}
2023-11-01 58 -
GD32A503RDT3 ADC+DMA顺序转换问题,没有数据
voidrcu_config(void){/*enableGPIOclock*/rcu_periph_clock_enable(RCU_GPIOB);rcu_periph_clock_enable(RCU_GPIOE);/*enableADC0clock*/rcu_periph_clock_enable(RCU_ADC0);/*enableDMA0clock*/rcu_periph_clock_enable(RCU_DMA0);}/*!\briefconfiguretheGPIOperipheral\paramnone\param[out]none\retvalnone*/voidgpio_config(void){/*configtheGPIOasanalogmode*/gpio_mode_set(GPIOB,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_1);//GPIOB1,gpio_mode_set(GPIOE,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_13);}/*!\briefconfiguretheDMAperipheral\paramnone\param[out]none\retvalnone*/voiddma_config(void){/*ADC_DMA_channelconfiguration*/dma_parameter_structdma_data_parameter;/*ADCDMA_channelconfiguration*/dma_deinit(DMA0,DMA_CH0);/*initializeDMAsingledatamode*/dma_data_parameter.periph_addr=(uint32_t)(&ADC_RDATA(ADC0));//外设基地址dma_data_parameter.periph_inc=DMA_PERIPH_INCREASE_DISABLE;//内存地址增量模式dma_data_parameter.memory_addr=(uint32_t)adc_value;//数据存放地址dma_data_parameter.memory_inc=DMA_MEMORY_INCREASE_ENABLE;//内存地址增量模式dma_data_parameter.periph_width=DMA_PERIPHERAL_WIDTH_16BIT;//dma外设宽度16位,半字dma_data_parameter.memory_width=DMA_MEMORY_WIDTH_16BIT;dma_data_parameter.direction=DMA_PERIPHERAL_TO_MEMORY;//传输模式,外设到存储(接收)dma_data_parameter.number=2;//长度dma_data_parameter.priority=DMA_PRIORITY_HIGH;//优先级高dma_init(DMA0,DMA_CH0,&dma_data_parameter);dma_circulation_enable(DMA0,DMA_CH0);/*enableDMAchannel*/dma_channel_enable(DMA0,DMA_CH0);}/*!\briefconfiguretheADCperipheral\paramnone\param[out]none\retvalnone*/voidadc_config(void){/*configADCclock*/rcu_adc_clock_config(RCU_
2023-08-28 25 -
LKS081控制12V电机不能一直转
用LKS081控制一个12V电机,程序是凌欧提供的无感FOC例程,通电后,电机转动不到3秒就不转了,重新上电后重复这个情况,请问这是咋回事?
2023-08-08 46 -
串口发送不了,求大佬解答
本帖最后由高手不多于2023-3-2711:19编辑左边是我的发送函数,右边是串口1的寄存器。idleien不知道为什么一直置1.串口也一直发不出去数据
2023-03-27 15 -
CW32F003 有没有BOOT引脚
CW32F003有没有BOOT引脚,是不是和STM32F0不一样。
2023-03-19 13 -
AT32F403A DMA传输数据翻转IO速度异常
测试一下使用定时器2通道1触发DMA传输数据到GPIO实现IO口的快速翻转,目前程序中只配置了定时器触发DMA,没有其他程序,DMA配置的是循环模式,没有开中断。但是以目前的测试来看,当触发频率超过20M时,DMA的速度停留在了20M(通过观察IO翻转频率观察的),无法进一步提高,这会是什么原因呢,测试IO口翻转频率是可以达到120M的,所以可能是达到了DMA传输的最快频率导致的吗,还是说可能是我哪配置错了
2022-12-12 25 -
KF32A151MQV 配置PWM输出
想问各位大佬配置PWM的频率和占空比是根据哪个计算公式呀在官方的文档中看到这个公式,有点看不懂C:\Users\guanyaqi\AppData\Local\Temp\企业微信截图_16638938912548.png
2022-09-23 10 -
新唐github上的Openwrt编译失败,老旧的分支17是天坑
源:OpenNuvoton/NUC980-OpenWrt:NUC980OpenWrt(github.com)手册:2022-5-18出版《NUC980OpenWrtQuickStartGuide》按手册里步骤编译,一堆错误,无法编译通过,然后检查了OpenWrt采用的分支是17.01.6,需要Ubuntu18环境,手册里居然没写,之后的版本都换到了c++17的编译标准,你们居然选了个c++14的编译版本,天量的编译错误出现。都2022了能不能把版本支持靠后点,OpenWrt17因为是旧的编译规范,很多package的更新无法引入,使用这个版本做系统意味着必须找2018年的软件包,很多被修复,被抛弃的特性再回头找是非常痛苦的。这是设置了一个天坑啊,标准Linux性能又很差,只有玩RTT一条路吗?
2022-06-17 4 -
新唐487+RTThread操作系统
通过RTthread平台的Env工具配置新唐bsp驱动包,总是报错,有哪位大神使用过这种开发方式?交流一下
2021-12-20 15 -
CH579 没有IIC口 是否可以通IO模拟来完成IIC通讯
CH579没有IIC口是否可以通IO模拟来完成IIC通讯
2021-03-24 68 -
HK32F030C8主频无法超过36MHz
原先使用的STM32030C8,代码也是用STM的时标准库写的,直接换航顺的HK32F030C8上去,程序运行到时钟配置时不行了。时钟配置代码:staticvoidRCC_Configuration(void){u16i;RCC_DeInit();/*使能HSI*/RCC_HSICmd(ENABLE);/*设置PLL时钟源及倍频系数*/RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_12);//16MHz(RCC_PLLMul_4),36MHz(RCC_PLLMul_9),48MHz(RCC_PLLMul_12)。/*使能PLL*/RCC_PLLCmd(ENABLE);i=1000;while((RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)&&(--i>0));/*设置系统时钟(SYSCLK)*/RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);SystemCoreClockUpdate();}将RCC_PLLMul_12改为RCC_PLLMul_9或以下时,程序运行正常。RCC_PLLMul_10及以上时程序就不行了。
2021-01-23 35