?? serial_communication.c
字號:
/***************************************************************************************************
9600bps
07.5.4 by ligang
說明:主程序中在idata存儲取定義緩沖區(一定數量數組),將數組名作為參數傳入,
且必須保證數組最后一個元素為 '\0',發送格式由主程序決定,
可發送一個或多個變量至串口調試助手
接收地址為:RX_ADDRESS
******************************************************************************************************/
#include <STC12C5412.H>
#include <ctype.h>
#define RX_ADDRESS 0xFE
/* unsigned char code ASCII_TAB[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39, //0-9,的ASCII
0x2E,0x0a,0x20,0x0d, //小數點,換行符,空格,回車符,
0x2b,0x2d,0x09}; //正號,負號,制表符*/
/* #define ASCII_CODE_ZHENGHAO 0X2B
#define ASCII_CODE_FUHAO 0x2D
#define ASCII_CODE_TAB 0x09
#defien ASCII_CODE_ */
/*-----------------------------------------------------------------------------------------------------
初始化串口波特率
-------------------------------------------------------------------------------------------------------*/
void Initiate_RS232(void)
{
ES=0;
SCON=0x50; //0101,0000 8數據位,無校驗
T2CON=0X34; //0011,0100 T2做波特率發生器
RCAP2H=0XFF; //11.0592M 9600
RCAP2L=0XDB;
ES=1;
}
/*---------------------------------------------------------------------------------------------------
串口通信程序
功能:將數據發往pc機
----------------------------------------------------------------------------------------------------*/
void serial_communication(unsigned char idata * data Buffer_Pointer)
{
//串口調試用
if(RI){
RI=0;
if(SBUF==RX_ADDRESS){ //pc機定時發送讀取命令0xFE
for(;(*Buffer_Pointer)!='\0';Buffer_Pointer++){
SBUF=(*Buffer_Pointer);
while(!TI);
TI=0;
}
SBUF=toascii('\n'); //發送換行符
while(!TI);
TI=0;
}
} //end if
}//end function
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -