-
单片机供电电源和稳定性问题
单片机如果用电源下限供电,会稳定吗
2024-12-09 71 -
GD32E230, VREFINT居然每次复位都会变?
以前用ADC很少用内部基准,都是尽量加一个431什么的,多用一个ADC通道读431再换算这次偷懒用了VREFINT,结果发现每次复位之后ADC采样结果相差挺大,于是单独把VREFINT的值输出到串口再换算成电压试试.一看吓一跳,标称1.2V,最低只有1.138V左右,最高1.207V左右,每次复位都不一样,复位之后倒是挺稳定的.是我哪里设置得不对吗?还是这东西就这样...
2023-11-16 80 -
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 -
N32G45X芯片的SysTick是固定900吗 ?
N32G45X芯片的SysTick是固定9000吗?系统嘀嗒校准值固定为9000,当系统嘀嗒时钟设定为9MHz(HCLK/8的最大值),产生1ms时间基准。就是说系统时钟频率一定的情况下,它产生的时间基准是固定的吗?
2022-12-12 13 -
CH32V003F4P6禁用掉SWD口为GPIO后,不能下载
各位大佬,大家好,沁恒CH32V003F4P6禁用掉SWD口为GPIO后,并且NRST也已设置为GPIO,然后不能下载代码调试了,一下载就提示找芯片型号不匹配,然后LINKe就断连...请问怎么解决?难不成成OTP了?
2022-11-24 19 -
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 34 -
CH579 没有IIC口 是否可以通IO模拟来完成IIC通讯
CH579没有IIC口是否可以通IO模拟来完成IIC通讯
2021-03-24 76 -
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 -
使用matlab开发STM32可行性与必要性
使用matlab开发STM32可行性与必要性到底在现在的开发中,有没有这个必要性!
2020-09-30 27