-
GD32E230, VREFINT居然每次复位都会变?
以前用ADC很少用内部基准,都是尽量加一个431什么的,多用一个ADC通道读431再换算这次偷懒用了VREFINT,结果发现每次复位之后ADC采样结果相差挺大,于是单独把VREFINT的值输出到串口再换算成电压试试.一看吓一跳,标称1.2V,最低只有1.138V左右,最高1.207V左右,每次复位都不一样,复位之后倒是挺稳定的.是我哪里设置得不对吗?还是这东西就这样...
2023-11-16 82 -
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 48 -
CH579 没有IIC口 是否可以通IO模拟来完成IIC通讯
CH579没有IIC口是否可以通IO模拟来完成IIC通讯
2021-03-24 76