com_pc-mcu
#include <REG52.H> unsigned char UART_buff;
bit New_rec = , Send_ed = , Money = ;
void main (void)
{
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = ;
ES = ;
EA = ;
while(Money == ); while()
{
if((New_rec == ) && (Send_ed == ))
{
UART_buff = SBUF;
SBUF = UART_buff;
New_rec = ;
Send_ed = ;
}
}
} void ser_int (void) interrupt {
if(RI == )
{
RI = ;
New_rec = ;
UART_buff = SBUF;
if(UART_buff == '') Money = ;
Money = ;
} else
{
TI = ;
Send_ed = ;
} }
2.mcu sends a1234, pc receives 1234
#define MAIN_Fosc 11059200L
#include "15W4KxxS4.H"
#include <intrins.h> #define uint8 unsigned char
#define uint16 unsigned int #define BAUD 9600
#define TM (65536 - (MAIN_Fosc/4/BAUD)) volatile uint8 Flag=FALSE; uint8 uart1temp; void Uart1_Init(void)
{ PCON &= 0x3f;
SCON = 0x50;
AUXR |= 0x40;
AUXR &= 0xfe;
TMOD &= 0x0f;
TMOD |= 0x20;
TL1 = 0xDC;
TH1 = 0xDC;
ET1 = ;
TR1 = ;
} void SendDataByUart1(uint8 dat)
{
if(!(dat^'a'))TI=;
else
{
TI=;
SBUF = dat;
while(TI == );
TI = ;
}
} void Uart1() interrupt UART1_VECTOR using
{
ES = ;
Flag=TRUE;
if (RI )
{
RI = ;
uart1temp = SBUF;
}
if (TI)
{
TI = ;
}
ES = ;
} void USART1_Tx_Puts(void)
{
if(Flag)
{
ES = ;
SendDataByUart1(uart1temp); ES = ;
Flag=FALSE;
}
} int main()
{
Uart1_Init();
ES = ;
EA = ;
while()
{
USART1_Tx_Puts( );
} }
3. mcu uart3 receives string, uart4 sends string.
#define MAIN_Fosc 11059200L //¶¨ÒåÖ÷ʱÖÓ
#include "15W4KxxS4.H"
#include <intrins.h> // ¼ÓÈë´ËÍ·Îļþºó,¿ÉʹÓÃ_nop_¿âº¯Êý
#include <string.h> // ¼ÓÈë´ËÍ·Îļþºó,¿ÉʹÓÃstrstr¿âº¯Êý #define uint8 unsigned char
#define uint16 unsigned int #define S3RI 0x01
#define S3TI 0x02
#define S4RI 0x01
#define S4TI 0x02 #define BAUD 9600 // ²¨ÌØÂÊ
#define Buf_Max 50 uint8 xdata Rec_Buf3[Buf_Max]; //½ÓÊÕ´®¿Ú3»º´æÊý×é
uint8 xdata Rec_Buf4[Buf_Max]; //½ÓÊÕ´®¿Ú4»º´æÊý×é
uint8 i = ;
uint8 j = ; /***************************************************************************
* Ãè Êö : ´®¿Ú3³õʼ»¯º¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void Uart3_Init(void)
{
S3CON |= 0x50; //´®¿Ú3Ñ¡Ôñ¶¨Ê±Æ÷3Ϊ²¨ÌØÂÊ·¢ÉúÆ÷£¬Æô¶¯´®ÐнÓÊÕÆ÷
S3CON &= 0x70; //8λÊý¾Ý,¿É±ä²¨ÌØÂÊ T3H=(-(MAIN_Fosc///BAUD))/;
T3L=(-(MAIN_Fosc///BAUD))%; T4T3M |= 0x08; //ÔÊÐí¶¨Ê±Æ÷3ÔËÐÐ
IE2 |= 0x08; // ´®¿Ú3Öжϴò¿ª
IE2 &= 0xDF; // ¹Ø±Õ¶¨Ê±Æ÷3ÖжÏ
} /***************************************************************************
* Ãè Êö : ´®¿Ú3·¢ËÍÊý¾Ýº¯Êý
* Èë ²Î : uint8 Êý¾Ý
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void SendDataByUart3(uint8 dat)
{
S3BUF = dat; //дÊý¾Ýµ½UARTÊý¾Ý¼Ä´æÆ÷
while(!(S3CON&S3TI)); //ÔÚֹͣλûÓз¢ËÍʱ£¬S3TIΪ0¼´Ò»Ö±µÈ´ý
S3CON&=~S3TI; //Çå³ýS3CON¼Ä´æÆ÷¶ÔÓ¦S3TI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
} /***************************************************************************
* Ãè Êö : ´®¿Ú3·¢ËÍ×Ö·û´®º¯Êý
* Èë ²Î : ×Ö·û´®
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void SendStringByUart3(uint8 *s)
{
IE2 &= 0xF7; // ´®¿Ú3ÖжϹرÕ
while (*s) //¼ì²â×Ö·û´®½áÊø±êÖ¾
{
SendDataByUart3(*s++); //·¢Ë͵±Ç°×Ö·û
}
IE2 |= 0x08; // ´®¿Ú3Öжϴò¿ª
} /**************************************
¹¦ÄÜÃèÊö£ºÎÕÊֳɹ¦Óë·ñº¯Êý
Èë¿Ú²ÎÊý£ºuint8 *a
·µ»ØÖµ£ºÎ»
***************************************/
bit Hand3(uint8 *a)
{
if(strstr(Rec_Buf3,a)!=NULL) //ÅжÏ×Ö·û´®aÊÇ·ñÊÇ×Ö·û´®Rec_Buf3µÄ×Ó´®
return ; //Èç¹û×Ö·û´®aÊÇ×Ö·û´®Rec_Buf3µÄ×Ó´®
else
return ; //Èç¹û×Ö·û´®a²»ÊÇ×Ö·û´®Rec_Buf3µÄ×Ó´®
} /**************************************
¹¦ÄÜÃèÊö£ºÇå³ý»º´æÄÚÈݺ¯Êý
Èë¿Ú²ÎÊý£ºÎÞ
·µ»ØÖµ£ºÎÞ
***************************************/
void CLR_Buf3(void)
{
uint8 k;
for(k=;k<Buf_Max;k++) //½«´®¿Ú3»º´æÊý×éµÄÖµ¶¼ÇåΪÁã
{
Rec_Buf3[k] = ;
}
i = ;
} /***************************************************************************
* Ãè Êö : ´®¿Ú3ÖжϷþÎñº¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void Uart3() interrupt UART3_VECTOR using
{
IE2 &= 0xF7; // ´®¿Ú3ÖжϹرÕ
if (S3CON & S3RI) //´®ÐнÓÊÕµ½Í£Ö¹Î»µÄÖмäʱ¿Ìʱ£¬¸ÃλÖÃ1
{
S3CON &= ~S3RI; //Çå³ýS3CON¼Ä´æÆ÷¶ÔÓ¦S3RI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
Rec_Buf3[i] = S3BUF; //°Ñ´®¿Ú3»º´æSBUF¼Ä´æÆ÷Êý¾ÝÒÀ´Î´æ·Åµ½Êý×éRec_Buf3ÖÐ
i++;
if(i>Buf_Max) //½ÓÊÕÊý´óÓÚ¶¨Òå½ÓÊÕÊý×é×î´ó¸öÊýʱ£¬¸²¸Ç½ÓÊÕÊý×é֮ǰֵ
{
i = ;
}
}
if (S3CON & S3TI) //ÔÚֹͣλ¿ªÊ¼·¢ËÍʱ£¬¸ÃλÖÃ1
{
S3CON &= ~S3TI; //Çå³ýS3CON¼Ä´æÆ÷¶ÔÓ¦S3TI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
}
IE2 |= 0x08; // ´®¿Ú3Öжϴò¿ª
} /***************************************************************************
* Ãè Êö : ´®¿Ú4³õʼ»¯º¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void Uart4_Init(void)
{
S4CON |= 0x50; //´®¿Ú4Ñ¡Ôñ¶¨Ê±Æ÷4Ϊ²¨ÌØÂÊ·¢ÉúÆ÷£¬Æô¶¯´®ÐнÓÊÕÆ÷
S4CON &= 0x70; //8λÊý¾Ý,¿É±ä²¨ÌØÂÊ T4H=(-(MAIN_Fosc///BAUD))/;
T4L=(-(MAIN_Fosc///BAUD))%; T4T3M |= 0x80; //ÔÊÐí¶¨Ê±Æ÷4ÔËÐÐ
IE2 |= 0x10; // ´®¿Ú4Öжϴò¿ª
IE2 &= 0xBF; // ¹Ø±Õ¶¨Ê±Æ÷4ÖжÏ
} /***************************************************************************
* Ãè Êö : ´®¿Ú4·¢ËÍÊý¾Ýº¯Êý
* Èë ²Î : uint8 Êý¾Ý
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void SendDataByUart4(uint8 dat)
{
S4BUF = dat; //дÊý¾Ýµ½UARTÊý¾Ý¼Ä´æÆ÷
while(!(S4CON&S4TI)); //ÔÚֹͣλûÓз¢ËÍʱ£¬S4TIΪ0¼´Ò»Ö±µÈ´ý
S4CON&=~S4TI; //Çå³ýS4CON¼Ä´æÆ÷¶ÔÓ¦S4TI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
} /***************************************************************************
* Ãè Êö : ´®¿Ú4·¢ËÍ×Ö·û´®º¯Êý
* Èë ²Î : ×Ö·û´®
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void SendStringByUart4(char *s)
{
IE2 &= 0xEF; //´®¿Ú4ÖжϹرÕ
while (*s) //¼ì²â×Ö·û´®½áÊø±êÖ¾
{
SendDataByUart4(*s++); //·¢Ë͵±Ç°×Ö·û
}
IE2 |= 0x10; //´®¿Ú4Öжϴò¿ª
} /**************************************
¹¦ÄÜÃèÊö£ºÎÕÊֳɹ¦Óë·ñº¯Êý
Èë¿Ú²ÎÊý£ºunsigned char *a
·µ»ØÖµ£ºÎ»
***************************************/
bit Hand4(unsigned char *a)
{
if(strstr(Rec_Buf4,a)!=NULL) //ÅжÏ×Ö·û´®aÊÇ·ñÊÇ×Ö·û´®Rec_Buf4µÄ×Ó´®
return ; //Èç¹û×Ö·û´®aÊÇ×Ö·û´®Rec_Buf4µÄ×Ó´®
else
return ; //Èç¹û×Ö·û´®a²»ÊÇ×Ö·û´®Rec_Buf4µÄ×Ó´®
} /**************************************
¹¦ÄÜÃèÊö£ºÇå³ý»º´æÄÚÈݺ¯Êý
Èë¿Ú²ÎÊý£ºÎÞ
·µ»ØÖµ£ºÎÞ
***************************************/
void CLR_Buf4(void)
{
unsigned char k;
for(k=;k<Buf_Max;k++) //½«´®¿Ú4»º´æÊý×éµÄÖµ¶¼ÇåΪÁã
{
Rec_Buf4[k] = ;
}
j = ;
} /***************************************************************************
* Ãè Êö : ´®¿Ú4ÖжϷþÎñº¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
void Uart4() interrupt UART4_VECTOR
{
IE2 &= 0xEF; // ´®¿Ú4ÖжϹرÕ
if(S4CON & S4RI) //´®ÐнÓÊÕµ½Í£Ö¹Î»µÄÖмäʱ¿Ìʱ£¬¸ÃλÖÃ1
{
S4CON &= ~S4RI; //Çå³ýS4CON¼Ä´æÆ÷¶ÔÓ¦S4RI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
Rec_Buf4[j] = S4BUF; //°Ñ´®¿Ú4»º´æSBUF¼Ä´æÆ÷Êý¾ÝÒÀ´Î´æ·Åµ½Êý×éRec_Buf4ÖÐ
j++;
if(j>Buf_Max) //½ÓÊÕÊý´óÓÚ¶¨Òå½ÓÊÕÊý×é×î´ó¸öÊýʱ£¬¸²¸Ç½ÓÊÕÊý×é֮ǰֵ
{
j = ;
}
}
if(S4CON & S4TI) //ÔÚֹͣλ¿ªÊ¼·¢ËÍʱ£¬¸ÃλÖÃ1
{
S4CON &= ~S4TI; //Çå³ýS4CON¼Ä´æÆ÷¶ÔÓ¦S4TI루¸Ãλ±ØÐëÈí¼þÇåÁ㣩
}
IE2 |= 0x10; // ´®¿Ú4Öжϴò¿ª
} /***************************************************************************
* Ãè Êö : Ö÷º¯Êý
* Èë ²Î : ÎÞ
* ·µ»ØÖµ : ÎÞ
**************************************************************************/
int main()
{
/////////////////////////////////////////////////
//×¢Òâ: STC15W4K32S4ϵÁеÄоƬ,ÉϵçºóËùÓÐÓëPWMÏà¹ØµÄIO¿Ú¾ùΪ
// ¸ß×è̬,Ð轫ÕâЩ¿ÚÉèÖÃΪ׼˫Ïò¿Ú»òÇ¿ÍÆÍìģʽ·½¿ÉÕý³£Ê¹ÓÃ
//Ïà¹ØIO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
// P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
/////////////////////////////////////////////////
P0M1 &= 0xF0; P0M0 &= 0xF0; //ÉèÖÃP0.0~P0.3Ϊ׼˫Ïò¿Ú Uart3_Init(); // ´®¿Ú3³õʼ»¯
Uart4_Init(); // ´®¿Ú4³õʼ»¯
EA = ; // ×ÜÖжϴò¿ª while()
{
if(Hand3("UART3")) // ÊÕµ½´ò¿ªLED1µÄÖ¸Áî
{
IE2 &= 0xF7; // ´®¿Ú3ÖжϹرÕ
CLR_Buf3(); //½«´®¿Ú3»º´æÊý×éµÄÖµ¶¼ÇåΪÁã
//SendStringByUart3("UART3 CHECK OK!\r\n"); //´®¿Ú3·¢ËÍ×Ö·û´®UART3 CHECK OK!
SendStringByUart4("UART4 CHECK OK!\r\n"); IE2 |= 0x08; // ´®¿Ú3Öжϴò¿ª
}
if(Hand4("UART4")) // ÊÕµ½´ò¿ªLED1µÄÖ¸Áî
{
IE2 &= 0xEF; // ´®¿Ú4ÖжϹرÕ
CLR_Buf4(); //½«´®¿Ú4»º´æÊý×éµÄÖµ¶¼ÇåΪÁã
//SendStringByUart4("UART4 CHECK OK!\r\n"); //´®¿Ú4·¢ËÍ×Ö·û´®UART4 CHECK OK!
IE2 |= 0x10; // ´®¿Ú4Öжϴò¿ª
}
}
}
4. mcu uart1 re a1234, uart2 send 1234
//pc send a1234 mcu send 1234
#define MAIN_Fosc 11059200L //?????
#include "15W4KxxS4.H"
#include <intrins.h> // ???????,???_nop_???
#include <string.h> // ???????,???strstr??? #define uint8 unsigned char
#define uint16 unsigned int #define BAUD 9600 // ???
#define TM (65536 - (MAIN_Fosc/4/BAUD))
#define Buf_Max 50
#define S2_S 0x00
#define S2RI 0x01
#define S2TI 0x02
#define S3RI 0x01
#define S3TI 0x02
#define S4RI 0x01
#define S4TI 0x02 uint8 xdata Rec_Buf1[Buf_Max]; //????1????
uint8 xdata Rec_Buf2[Buf_Max]; //????2????
uint8 xdata Rec_Buf3[Buf_Max]; //????3????
uint8 xdata Rec_Buf4[Buf_Max]; //????4????
uint8 i = ;
uint8 j = ;
uint8 m = ;
uint8 n = ; volatile uint8 Flag=FALSE; uint8 uart1temp; void Uart1_Init(void)
{ P_SW1|=0X80; //??P16 P17???1
P_SW1&=0XBF; //??P16 P17???1
P_SW2|=S2_S; //??P46 P47???2
//??1??
PCON &= 0x3f; //??1??????,????????SM0?SM1??
SCON = 0x50; //??1?8???,?????,???????
AUXR |= 0x01; //??1?????2???????
//??2??
S2CON = 0x50; //??2?8???,?????
//??3??
S3CON |= 0x10; //??3???????
S3CON &= 0x30; //??3?????2???????,8???,?????
//??4??
S4CON |= 0x10; //???????
S4CON &= 0x30; //8???,?????,??4?????2??????? AUXR |= 0x04; //???2???Fosc,?1T
T2L = 0xE0; //??????
T2H = 0xFE; //??????
AUXR |= 0x10; //?????2
} void SendDataByUart1(uint8 dat)
{
if(!(dat^'a'))TI=;
else
{
TI=;
S2BUF = dat;
while(!(S2CON&S2TI)); //?????????,S2TI?0?????
S2CON&=~S2TI;
}
} void Uart1() interrupt UART1_VECTOR using
{
ES = ;
Flag=TRUE;
if (RI )
{
RI = ;
uart1temp = SBUF;
}
if (TI)
{
TI = ;
}
ES = ;
} void USART1_Tx_Puts(void)
{
if(Flag)
{
ES = ;
SendDataByUart1(uart1temp); ES = ;
Flag=FALSE;
}
} int main()
{
Uart1_Init();
ES = ;
EA = ;
while()
{
USART1_Tx_Puts( );
} }
5. mcu u1 rec a123,u2 send 1234; u1 re b123, u3 send 123; u1 rec c123, u4 send 123; u1 rec xxx, u1 send xxx;
//pc send a1234 mcu send 1234
#define MAIN_Fosc 11059200L //?????
#include "15W4KxxS4.H"
#include <intrins.h> // ???????,???_nop_???
#include <string.h> // ???????,???strstr??? #define uint8 unsigned char
#define uint16 unsigned int #define BAUD 9600 // ???
#define TM (65536 - (MAIN_Fosc/4/BAUD))
#define Buf_Max 50
#define S2_S 0x00
#define S2RI 0x01
#define S2TI 0x02
#define S3RI 0x01
#define S3TI 0x02
#define S4RI 0x01
#define S4TI 0x02 uint8 xdata Rec_Buf1[Buf_Max]; //????1????
uint8 xdata Rec_Buf2[Buf_Max]; //????2????
uint8 xdata Rec_Buf3[Buf_Max]; //????3????
uint8 xdata Rec_Buf4[Buf_Max]; //????4????
uint8 i = ;
uint8 j = ;
uint8 m = ;
uint8 n = ;
uint8 td=; volatile uint8 Flag=FALSE; uint8 uart1temp; void Uart1_Init(void)
{ P_SW1|=0X80; //??P16 P17???1
P_SW1&=0XBF; //??P16 P17???1
P_SW2|=S2_S; //??P46 P47???2
//??1??
PCON &= 0x3f; //??1??????,????????SM0?SM1??
SCON = 0x50; //??1?8???,?????,???????
AUXR |= 0x01; //??1?????2???????
//??2??
S2CON = 0x50; //??2?8???,?????
//??3??
S3CON |= 0x10; //??3???????
S3CON &= 0x30; //??3?????2???????,8???,?????
//??4??
S4CON |= 0x10; //???????
S4CON &= 0x30; //8???,?????,??4?????2??????? AUXR |= 0x04; //???2???Fosc,?1T
T2L = 0xE0; //??????
T2H = 0xFE; //??????
AUXR |= 0x10; //?????2
} void SendDataByUart1(uint8 dat)
{ if(!(dat^'a')|!(dat^'b')|!(dat^'c')){TI=; td= dat; }//Èç¹ûÊÇaÔò²»·¢ËÍ
else if(td=='a')
{ TI=;
S2BUF = dat;
while(!(S2CON&S2TI)); //?????????,S2TI?0?????
S2CON&=~S2TI;
} else if(td=='b')
{
TI=;
S3BUF = dat;
while(!(S3CON&S3TI)); //?????????,S2TI?0?????
S3CON&=~S3TI;
}
else if(td=='c')
{
TI=;
S4BUF = dat;
while(!(S4CON&S4TI)); //?????????,S2TI?0?????
S4CON&=~S4TI;
}
else
{
TI=;
SBUF = dat;
while(!TI); //?????????,S2TI?0?????
TI=;
} } void Uart1() interrupt UART1_VECTOR using
{
ES = ;
Flag=TRUE;
if (RI )
{
RI = ;
uart1temp = SBUF;
}
if (TI)
{
TI = ;
}
ES = ;
} void USART1_Tx_Puts(void)
{
if(Flag)
{
ES = ;
SendDataByUart1(uart1temp); ES = ;
Flag=FALSE;
}
} int main()
{
Uart1_Init();
ES = ;
EA = ;
while()
{
USART1_Tx_Puts( );
} }
6. ...5, u4 rec q, exit loop, enter new function
//pc send a1234 mcu send 1234
#define MAIN_Fosc 11059200L #define Main_Fosc_KHZ (MAIN_Fosc / 1000)
#include "15W4KxxS4.H"
#include <intrins.h>
#include <string.h> #define uint8 unsigned char
#define uint16 unsigned int #define Buf_Max 50
uint8 data Rec_Buf[Buf_Max];
#define S2_S 0x00
#define S2RI 0x01
#define S2TI 0x02
#define S3RI 0x01
#define S3TI 0x02
#define S4RI 0x01
#define S4TI 0x02 uint8 i = ;
uint8 j = ;
uint8 m = ;
uint8 n = ;
uint8 td=; volatile uint8 Flag=FALSE; uint8 uart1temp; void Uart1_Init(void)
{ P_SW1|=0X80; //串口1在P1.6,P1.7
P_SW1&=0XBF;
// P_SW2|=S2_S; //串口2在P1.0,P1.1
//
// PCON &= 0x3f;
// SCON = 0x50; //?
// AUXR |= 0x01; // T2
//
// S2CON = 0x50; //
//
// S3CON |= 0x10; //
// S3CON &= 0x30; //
//
// S4CON |= 0x10; //
// S4CON &= 0x30; //
//
// AUXR |= 0x04; //
// T2L = 0xE0; //
// T2H = 0xFE; //
// AUXR |= 0x10; // SCON = 0x50;
S2CON = 0x50; //8位数据,可变波特率
S3CON = 0x10; //8位数据,可变波特率
S3CON &= 0xBF; //串口3选择定时器2为波特率发生器
S4CON = 0x10; //8位数据,可变波特率
S4CON &= 0xBF; //串口4选择定时器2为波特率发生器
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x01; //串口1选择定时器2为波特率发生器
AUXR |= 0x04; //定时器2时钟为Fosc,即1T
T2L = 0xE8; //设定定时初值
T2H = 0xFF; //设定定时初值
AUXR |= 0x10; //启动定时器2 } void SendDataByUart1(uint8 dat)
{
if(!(dat^'a')|!(dat^'b')|!(dat^'c')|!(dat^'q') ){TI=; td= dat; }
else if(td=='a')
{ S2BUF = dat;
while(!(S2CON&S2TI));
S2CON&=~S2TI;
} else if(td=='b')
{
S3BUF = dat;
while(!(S3CON&S3TI));
S3CON&=~S3TI;
} else if (td=='c')
{ S4BUF = dat;
while(!(S4CON&S4TI));
S4CON&=~S4TI; }
} void USART1_Tx_Puts(void)
{
if(Flag)
{
ES = ;
SendDataByUart1(uart1temp); ES = ;
Flag=FALSE;
}
} void SendDataByUart12(uint8 dat)
{
SBUF = dat;
while(! TI );
TI=; } /*
void SendDataByUart12(uint8 dat)
{
SBUF = dat;
while(!TI);
TI=0; }*/
void USART1_Tx_Puts12(void)
{
if(Flag)
{
ES = ;
SendDataByUart12(uart1temp); ES = ;
Flag=FALSE;
}
} int main()
{ P1M1 &= 0x3F; P1M0 &= 0x3F; //设置P1.6~P1.7为准双向口
Uart1_Init();
ES = ;
EA = ; while()
{ USART1_Tx_Puts ( );
if( td=='q')
{
SBUF=;
break;
}
} while()
{ USART1_Tx_Puts12 ( ); } } void Uart1() interrupt UART1_VECTOR using
{
ES = ;
Flag=TRUE;
if (RI )
{
RI = ;
uart1temp = SBUF;
Rec_Buf[i] = uart1temp; //把串口1缓存SBUF寄存器数据依次存放到数组Rec_Buf中
i++;
if(i>Buf_Max) //接收数大于定义接收数组最大个数时,覆盖接收数组之前值
{
i = ;
}
} if (TI)
{
TI = ;
}
ES = ;
}
com_pc-mcu的更多相关文章
- 意法STM32F1系列MCU单片机解密芯片破解复制
意法STM32F1系列MCU单片机解密芯片破解复制 STM32F1系列MCU芯片解密: STM32F100解密 | STM32F101解密 | STM32F102解密 | STM32F103解密 | ...
- MCU的四个功能
以下来自Atmel Mega128的说明手册: 微控制器(微处理器)Microcontroller(MCU)的四个基本功能为: 1. access memory, 2. perform calcul ...
- 【MCU】【STM32】1.cube MX库使用笔记
STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列.(如,STM32CubeF4 是针对STM32F4系列). 平台包括了STM32Cube 硬件抽象层和一套的中间件组件(RTOS, ...
- 如何快速掌握一款新的MCU? (转)
发布时间:2013-12-15 10:27:51 技术类别:单片机 个人分类:话题思考 任何一款MCU,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量.指 ...
- (原创)巩固理解基于DS18B20的1-wire协议(MCU,经验)
1.Abstract 如前篇随笔所写,将以前遇到最难懂的两个部分重拾一下.前一篇写的是I2C协议(http://www.cnblogs.com/hechengfei/p/4117840.htm ...
- (原创) 巩固理解I2C协议(MCU,经验)
题外话:这几天天气突然转冷了.今天已是11月23日了,查查黄历,昨天(11月22日)刚好是小雪,一夜温度骤降,果然老祖先的经验有灵验!冬天来了,还是多加加衣服,注意保暖! 1.Abstract ...
- 如何为编程爱好者设计一款好玩的智能硬件(三)——该选什么样的MCU呢?
一.我的构想:如何为编程爱好者设计一款好玩的智能硬件(一)——即插即用.积木化.功能重组的智能硬件模块构想 二.别人家的孩子:如何为编程爱好者设计一款好玩的智能硬件(二)——别人是如何设计硬件积木的! ...
- 如何去各型MCU的官网上下载正确的数据手册
一.背景 感谢老司机左栋,虽然他一直很排斥这个名号 : ) ,可就技术上来说,还是当之无愧的. 弄了1年多单片机了,数据手册不是老员工或者头头给,就是从开发板资料拿.一直没有意识到,官网的东西才是最可 ...
- [转载]MCU DSP ARM 嵌入式 之间的区别
2016-06-28 10:31:24) 嵌入式"这是个概念,准确的定义没有,各个书上都有各自的定义.但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简 ...
- 面对一个新的MCU,我再也不敢说第一步是点灯了
折腾了几天AT91SAM3S,今天才算是把开发板上的3个LED点亮. 在点亮之前,起码看了百八十页的Datasheet,动用了N次百度. 各种时钟,看门狗,分散加载,中断向量,都得去整.这些都远远超过 ...
随机推荐
- 1.5.3、CDH 搭建Hadoop在安装之前(定制安装解决方案---创建群集主机的虚拟映像)
创建群集主机的虚拟映像 您可以使用预先部署的Cloudera软件创建虚拟机映像,例如PXE启动映像,Amazon AMI和Azure VM映像,这些映像可用于快速启动虚拟机.这些图像使用parcel来 ...
- Oracle数据导出导入
总结了几种Oracle导入导出的命令方法,方便以后使用. 数据导出: 1. 将数据库test完全导出,用户名system 密码manager 导出到d:/daochu.dmp中 ...
- Lattice Constants and Crystal Structures of some Semiconductors
Lattice Constants and Crystal Structures of some Semiconductors and Other Materials Element or Compo ...
- centos搭建OPENldap
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根据需要定制.与X ...
- hdoj1013(数根,大数,九余数算法)
Digital Roots Problem Description The digital root of a positive integer is found by summing the dig ...
- Codeforces Beta Round #54 (Div. 2)
Codeforces Beta Round #54 (Div. 2) http://codeforces.com/contest/58 A 找子序列 #include<bits/stdc++.h ...
- Windows 64 位 mysql 5.7.20 安装教程
mysql 5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的方法 mysql官网下载地址:https://dev.my ...
- java 基础之--java动态代理
1.抽象角色:声明真实对象与代理对象的共同接口: 2.代理角色:相当于中介的作用,bridge,内部包含对真实角色的reference,在执行真实操作对象时,附加其他操作,相当于对真实角色的封装: 3 ...
- java 基础之--反射详解
java 反射绝大部分都位于 java.lang.reflect package 中:常用的类就是: 1.class类:代表一个类 2.field类:代表类的成员变量 3.method:代表类的方法 ...
- day 06 列表去重, 数据类型的补充,编码,深浅copy
因为重要,所以放前面 列表去重 l1 = [1, 2, 3, 4, 5] l2 = [3, 4, 5, 6, 7] set = list(set(l1 + l2)) # set自动去重,然后变成lis ...