初级会员

- 积分
- 140
- 金钱
- 140
- 注册时间
- 2018-3-26
- 在线时间
- 292 小时
|
10金钱
- void uart_init2(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<<2; //ʹÄÜPORTA¿ÚʱÖÓ
- RCC->APB1ENR|=1<<17; //ʹÄÜ´®¿ÚʱÖÓ
-
- GPIOA->CRL&=0XFFFF00FF;//IO״̬ÉèÖÃ
- GPIOA->CRL|=0X00008B00;//IO״̬ÉèÖÃ
-
- RCC->APB1RSTR|=1<<17; //¸´Î»´®¿Ú1
- RCC->APB1RSTR&=~(1<<17);//Í£Ö¹¸´Î»
-
- //²¨ÌØÂÊÉèÖÃ
- USART2->BRR=mantissa; // ²¨ÌØÂÊÉèÖÃ
-
- USART2->CR1|=0X200C; //1λֹͣ,ÎÞУÑéλ.
-
- #if EN_USART2_RX //Èç¹ûʹÄÜÁ˽ÓÊÕ
- //ʹÄܽÓÊÕÖжÏ
- USART2->CR1|=1<<5; //½ÓÊÕ»º³åÇø·Ç¿ÕÖжÏʹÄÜ
-
- Tim2_Int_Init(99,7199); //10msÖжÏ
- TIM2->CR1&=~(1<<0); //¹Ø±Õ¶¨Ê±Æ÷2
-
- MY_NVIC_Init(3,3,USART2_IRQn,2);//×é2£¬×îµÍÓÅÏȼ¶
- #endif
- }
复制代码
|
|