本帖最后由 cunxing 于 2016-4-15 10:48 编辑
从ST转过来用GD,用的ST的库,原程序不改用在GD上USB OK。 因GD能跑更快,于是改成跑96M(因要使用USB,外置晶振8M)。仅修改了如下代码(USB就不行了):
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_12); //8 * 12 = 96M,之前是8*9=72M
RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_Div2); //USB时钟为96/2= 48M, 之前是72/1.5
因为用的是ST的库,USB时钟分频使用的位没有那么多,于再修改库文件stm32f10x_rcc.c:
#define RCC_USBCLKSource_PLLCLK_1Div5 ((uint8_t)0x00)
#define RCC_USBCLKSource_PLLCLK_Div1 ((uint8_t)0x01)
#define RCC_USBCLKSource_PLLCLK_2Div5 ((uint8_t)0x10) //GD 后增加
#define RCC_USBCLKSource_PLLCLK_Div2 ((uint8_t)0x11) //GD 后增加
#define IS_RCC_USBCLK_SOURCE(SOURCE) (((SOURCE) == RCC_USBCLKSource_PLLCLK_1Div5) || \
((SOURCE) == RCC_USBCLKSource_PLLCLK_Div1) || \
((SOURCE) == RCC_USBCLKSource_PLLCLK_2Div5) || \
((SOURCE) == RCC_USBCLKSource_PLLCLK_Div2)) //参数较验宏也同样修改。
修改后,USB就不行了。
各位大侠,这样修修改应该没有问题呀?难道不有漏掉的地方?还是GD,在USB方面还有其它需要设置的? |