初级会员

- 积分
- 120
- 金钱
- 120
- 注册时间
- 2018-4-18
- 在线时间
- 18 小时
|
1金钱
因为我现在想设置串口波特率为115200,但是实际上有时候为115200,有时候为38400就是不能保障我串口正常收发。而目前串口设置波特率为115200却需要38400的才能调试。
{
RCC->AHB1ENR|=(0x00000004)|(0x00000010);
RCC->APB2ENR|=(0x00000020);
RCC->APB1ENR|=(0x40000000)|(0x80000000);
//USART6 IOÅäÖÃ
GPIO_Set(GPIOC,PIN6|PIN7,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
GPIO_AF_Set(GPIOC,6,8);//PC6,AF8
GPIO_AF_Set(GPIOC,7,8);//PC7,AF8
//UART7 IOÅäÖÃ
GPIO_Set(GPIOE,PIN7|PIN8,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
GPIO_AF_Set(GPIOE,7,8); //PE7,AF8
GPIO_AF_Set(GPIOE,8,8);//PE8,AF8
//UART8 IOÅäÖÃ
GPIO_Set(GPIOE,PIN0|PIN1,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
GPIO_AF_Set(GPIOE,0,8); //PE0,AF8
GPIO_AF_Set(GPIOE,1,8);//PE1,AF8
}
Stm32_Clock_Init(360,25,8,8);//设置为45MHZ
u8 Sys_Clock_Set(u32 plln,u32 pllm,u32 pllp,u32 pllq)
{
u16 retry=0;
u8 status=0;
RCC->CR|=1<<16; //HSE ¿aÆô
while(((RCC->CR&(1<<17))==0)&&(retry<0X1FFF))retry++;//μè′yHSE RDY
if(retry==0X1FFF)status=1; //HSEÎT·¨¾íD÷
else
{
RCC->APB1ENR|=1<<28;
PWR->CR|=3<<14;
RCC->CFGR|=(0<<4)|(0<<10)|(0<<13);
RCC->CR&=~(1<<24);
RCC->PLLCFGR=pllm|(plln<<6)|(((pllp>>1)-1)<<16)|(pllq<<24)|(1<<22);
RCC->CR|=1<<24;
while((RCC->CR&(1<<25))==0);
FLASH->ACR|=1<<8;
FLASH->ACR|=1<<9;
FLASH->ACR|=1<<10;
FLASH->ACR|=1<<0;
RCC->CFGR&=~(3<<0);
RCC->CFGR|=2<<0;
while((RCC->CFGR&(3<<2))!=(2<<2));
}
return status;
}
谢谢回答
|
|