初级会员

- 积分
- 113
- 金钱
- 113
- 注册时间
- 2014-7-11
- 在线时间
- 0 小时
|
5金钱
今天调通了USART3,但UART4和UART5调不出来,怀疑是初始化问题?请问问题在那处?
USART3 (正常):
void USART3_Init(u32 pclk2,u32 bound)
{
float temp;
u16 mantissa;
u16 fraction;
temp=(float)(pclk2*1000000)/(bound*16);
mantissa=temp;
fraction=(temp-mantissa)*16;
mantissa<<=4;
mantissa+=fraction;
RCC->APB2ENR|=1<<3;
RCC->APB1ENR|=1<<18;
GPIOB->CRH&=0XFFFF00FF;
GPIOB->CRH|=0X00008B00;
RCC->APB1RSTR|=1<<18;
RCC->APB1RSTR&=~(1<<18);
USART3->BRR=mantissa;
USART3->CR1|=0X200C;
#if EN_USART3_RX
USART3->CR1|=1<<8;
USART3->CR1|=1<<5;
MY_NVIC_Init(3,3,USART3_IRQn,2);
#endif
}
UART4(异常):
void UART4_Init(u32 pclk2,u32 bound)
{
float temp;
u16 mantissa;
u16 fraction;
temp=(float)(pclk2*1000000)/(bound*16);
mantissa=temp;
fraction=(temp-mantissa)*16;
mantissa<<=4;
mantissa+=fraction;
RCC->APB2ENR|=1<<4;
RCC->APB1ENR|=1<<19;
GPIOC->CRH&=0XFFFF00FF;
GPIOC->CRH|=0X00008B00;
RCC->APB1RSTR|=1<<19;
RCC->APB1RSTR&=~(1<<19);
UART4->BRR=mantissa;
UART4->CR1|=0X200C;
#if EN_UART4_RX
UART4->CR1|=1<<8;
UART4->CR1|=1<<5;
MY_NVIC_Init(3,3,UART4_IRQn,2);
#endif
}
UART5(异常):
void UART5_Init(u32 pclk2,u32 bound)
{
float temp;
u16 mantissa;
u16 fraction;
temp=(float)(pclk2*1000000)/(bound*16);
mantissa=temp;
fraction=(temp-mantissa)*16;
mantissa<<=4;
mantissa+=fraction;
RCC->APB2ENR|=1<<4;
RCC->APB2ENR|=1<<5;
RCC->APB1ENR|=1<<20;
GPIOC->CRH&=0XFFF0FFFF;
GPIOD->CRL&=0XFFFFF0FF;
GPIOC->CRH|=0X000B0000;
GPIOD->CRL|=0X00000800;
RCC->APB1RSTR|=1<<20;
RCC->APB1RSTR&=~(1<<20);
UART5->BRR=mantissa;
UART5->CR1|=0X200C;
#if EN_UART5_RX
UART5->CR1|=1<<8;
UART5->CR1|=1<<5;
MY_NVIC_Init(3,3,UART5_IRQn,2);
#endif
}
|
|