📄 serial.c
字号:
void Serial_Init()
{
T2CON = 0x30 ;
SCON = 0x50 ;
RCAP2H = T2BAUDH ;
RCAP2L = T2BAUDL ;
TH2 = T2BAUDH ;
TL2 = T2BAUDL ;
TR2 = 1 ;
ET2 = 0 ;
ES = 1 ;
PS = 1 ;
}
#pragma disable /* 除非最高优先级中断,否则,必须加上这一句 */
void Serial_Interrupt(void) interrupt 4
{
uint8 data temp;
if (RI == 1)
{
OS_INT_ENTER();
RI = 0;
OSQIntPost(SerialInData,SBUF);
OSIntExit();
return;
}
if (TI == 1)
{
TI = 0;
if (OSQAccept(&temp,SerialOutData) == OS_Q_OK)
{
SBUF = temp;
}
else
{
SerialCanSend = 1;
}
}
}
void PutChar(uint8 Data)
{
OS_ENTER_CRITICAL();
if (SerialCanSend == 1)
{
SerialCanSend = 0;
SBUF = Data; /* 串口空闲,直接发送 */
}
else
{
OSQIntPost(SerialOutData,Data); /* 数据入队 */
}
OS_EXIT_CRITICAL();
}
void PutString(uint8 *in,uint8 len)
{
uint8 i ;
if(len == 0) return ;
for(i=0;i<len;i++)
{
PutChar(in[i]) ;
}
}
void Set_HardReset()
{
OSWait(K_TMO,100);
OSWait(K_TMO,200);
TC35IGT = 1 ;
OSWait(K_TMO,100);
OSWait(K_TMO,200);
TC35IGT = 0 ;
OSWait(K_TMO,100);
OSWait(K_TMO,200);
TC35IGT = 1 ;
OSWait(K_TMO,100);
OSWait(K_TMO,200);
TC35IGT = 0 ;
}
/*
void Dialing_TC35(uint8 *in,uint8 len)
{
PutString("ATD",3) ;
PutString(in,len) ;
PutString(";\r",2) ;
}
void GuaJiTC35()
{
PutString("ATH\r",4) ;
}
void Send_DTMF_Tone()
{
PutString("AT+VTS=A\r",9) ;
OSWait(K_TMO,80);
PutString("AT+VTS=A\r",9) ;
}
void Set_Save()
{
PutString("AT&w\r",5) ;
}
void SetInterface2()
{
PutString("AT^SNFS=3\r",10) ;
}
void Set_SoftReset()
{
PutString("AT+CFUN=1,1\r",12) ;
}
void Set_Baud()
{
PutString("AT+IPR=9600\r",12) ;
}
void CheckRegister()
{
PutString("AT+CREG?\r",9) ;
}
void Set_Receive_Callid()
{
PutString("AT+CLIP=1\r",10) ;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -