|
发表于 2018-1-18 08:54:12
|
显示全部楼层
- //----------------------------------------------------------------------------------
- // UART0 baud rate initial setting
- //----------------------------------------------------------------------------------
- void InitialUART0_Timer1(UINT32 u32Baudrate) //T1M = 1, SMOD = 1
- {
- P06_Quasi_Mode; //Setting UART pin as Quasi mode for transmit
- P07_Quasi_Mode; //Setting UART pin as Quasi mode for transmit
- // P06_PushPull_Mode;
- // P07_Input_Mode;
-
- SCON = 0x50; //UART0 Mode1,REN=1,TI=1
- TMOD |= 0x20; //Timer1 Mode1
-
- set_SMOD; //UART0 Double Rate Enable
- set_T1M;
- clr_BRCK; //Serial port 0 baud rate clock source = Timer1
-
- #ifdef FOSC_160000
- TH1 = 256 - (1000000/u32Baudrate+1); /*16 MHz */
- #endif
- #ifdef FOSC_166000
- TH1 = 256 - (1037500/u32Baudrate); /*16.6 MHz */
- #endif
- set_TR1;
- // set_TI; //For printf function must setting TI = 1
- }
- //----------------------------------------------------------------------------------
- // UART1 baud rate initial setting
- //----------------------------------------------------------------------------------
- void InitialUART1_Timer3(UINT32 u32Baudrate) //use timer3 as Baudrate generator
- {
- P02_Quasi_Mode; //Setting UART pin as Quasi mode for transmit
- P16_Quasi_Mode; //Setting UART pin as Quasi mode for transmit
-
- SCON_1 = 0x50; //UART1 Mode1,REN_1=1,TI_1=1
- T3CON = 0x08; //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1), UART1 in MODE 1
- clr_BRCK;
-
- #ifdef FOSC_160000
- RH3 = HIBYTE(65536 - (1000000/u32Baudrate)-1); /*16 MHz */
- RL3 = LOBYTE(65536 - (1000000/u32Baudrate)-1); /*16 MHz */
- #endif
- #ifdef FOSC_166000
- RH3 = HIBYTE(65536 - (1037500/u32Baudrate)); /*16.6 MHz */
- RL3 = LOBYTE(65536 - (1037500/u32Baudrate)); /*16.6 MHz */
- #endif
- set_TR3; //Trigger Timer3
- }
- void SerialPort0_ISR(void) interrupt 4
- {
- uint8_t data rx_dat;
-
- if(RI==1)
- {
- // clr_RI; /* if reception occur */
- rx_dat = SBUF; /* clear reception flag for next reception */
- if(Mcu_RcvWiFiCmd(rx_dat))
- {
- WiFiCmdRcvFinishFlag = TRUE;
- }
- clr_RI;
- }
- if(TI==1)
- {
- TxFlag =0;
- clr_TI; /* if emission occur */
- }
- }
- void SerialPort1_ISR(void) interrupt 15
- {
- uint8_t data rx_dat_1;
- if(RI_1==1)
- { /* if reception occur */
- rx_dat_1 = SBUF_1;
- // clr_RI_1;
- if(Mcu_RcvBTCmd(rx_dat_1))
- {
- BTCmdRcvFinishFlag = TRUE;
- }
- clr_RI_1; /* clear reception flag for next reception */
- // P12 = ~P12;
- }
- if(TI_1==1)
- {
- Tx1Flag = 0;
- clr_TI_1; /* if emission occur */
- }
- }
复制代码 |
|