平台:mini开发板
串口号:UART5
问题:如题
UART5初始化代码:
pclk2=36, bound=9600
[mw_shl_code=c,true]void uart_init(u32 pclk2,u32 bound)
{
float temp;
u16 mantissa;
u16 fraction;
temp=(float)(pclk2*1000000)/(bound*16);//得到USARTDIV
mantissa=temp; //得到整数部分
fraction=(temp-mantissa)*16; //得到小数部分
mantissa<<=4;
mantissa+=fraction;
RCC->APB2ENR|=1<<4; //使能PORTC and PORTD口时钟
RCC->APB2ENR|=1<<5;
RCC->APB1ENR|=1<<20; //使能串口时钟
GPIOC->CRH&=0XFFF0FFFF;//IO状态设置
GPIOC->CRH|=0X000B0000;//IO状态设置
GPIOD->CRL&=0XFFFFF0FF;//IO状态设置
GPIOD->CRL|=0X00000800;//IO状态设置
RCC->APB1RSTR|=1<<20; //复位串口1
RCC->APB1RSTR&=~(1<<20);//停止复位
//波特率设置
UART5->BRR=mantissa; // 波特率设置
UART5->CR1|=0X200C; //1位停止,无校验位.
#if EN_USART1_RX //如果使能了接收
//使能接收中断
UART5->CR1|=1<<8; //PE中断使能
UART5->CR1|=1<<5; //接收缓冲区非空中断使能
MY_NVIC_Init(3,3,UART5_IRQn,2);//组2,最低优先级
#endif
}[/mw_shl_code]
请问设置哪里有问题,求帮忙 |