今天移植STM32F103C8T6的程序到GD32F130C8T6,运行发现程序死在了ADC_ResetCalibration,折腾了好一阵子。网上也找不着原因。
查看手册后才发现,这两个芯片的寄存器不一样,GD32F130C8T6默认选中内置IRC14M振荡器作为ADC的时钟,而STM32F103C8T6没有内置14M时钟。
解决方法是:
在ADC初始化之前,加入:
(&RCC->CR)[12] |= 1<<8;
今天移植STM32F103C8T6的程序到GD32F130C8T6,运行发现程序死在了ADC_ResetCalibration,折腾了好一阵子。网上也找不着原因。
查看手册后才发现,这两个芯片的寄存器不一样,GD32F130C8T6默认选中内置IRC14M振荡器作为ADC的时钟,而STM32F103C8T6没有内置14M时钟。
解决方法是:
在ADC初始化之前,加入:
(&RCC->CR)[12] |= 1<<8;