float temp;
u16 mantissa;
u16 fraction;
temp=(float)(pclk1*1000000)/(bound*16);//得到USARTDIV
mantissa=temp; //得到整數部分
fraction=(temp-mantissa)*16; //得到小數部分
mantissa<<=4;
mantissa+=fraction;
RCC->APB2ENR|=1<<2; //使能PORTA口時鐘
GPIOA->CRL&=0XFFFF00F0; //IO狀態設置
GPIOA->CRL|=0X00008B03; //IO狀態設置
RCC->APB1ENR|=1<<17; //使能串口時鐘
RCC->APB1RSTR|=1<<17; //復位串口2
RCC->APB1RSTR&=~(1<<17);//停止復位
//波特率設置
USART2->BRR=mantissa; // 波特率設置
USART2->CR1|=0X200C; //1位停止,無校驗位.
這個串口的輸入輸出到底在哪個口啊???
大神求解。 |