資源簡介
LC12Swifi模塊資料
代碼片段和文件信息
/**************************************************************************************************
凌承芯電子LC12S使用例程
發射數據:只需要給數據a賦初值,調用UartSendBuf(alenth)函數變可以
接收數據:發射端的數據格式為?AA5A?[.......]??BB6B????
?[.......]??為客戶自己需要的數據,接收程序會正確接收后用uart_handle()處理
?
?例程中?可以發射放數據應該為?AA5A?11[...]?BB6B????//[...]可以寫任意字節或不寫
?uart_handle()判斷了有效數據的第一個數據11,如果是11,則LED等反轉
?
june
2018.7.28
**************************************************************************************************/
#define?DATA_START0?0xAA??? //數據頭1
#define?DATA_START1?0x5A //數據頭2
#define?DATA_END0?0xBB //數據結尾1
#define?DATA_END1?0x6B //數據結尾1
#define?UART_LENGTH?128 //串口數據緩存區
#define?LED?P11
unsigned?char?UartBuffer[UART_LENGTH]write=0data_start_true=0;
//串口初始化設置
//晶振11.0592MHZ?波特率9600
void?UartConfig()
{
//串口方式1
TMOD=0X20;????//T1定時器,工作方式2
TH1=0XFD;????//T1定時器裝初值???//253=256-(1*11.0592*10^6)/(384*9600)
TL1=0XFD;????//T1定時器裝初值
TR1=1;????????//啟動T1定時器
REN=1;????????//允許串口接收
SM0=0;????????//設定串口工作方式1
SM1=1;????????//設定串口工作方式1
EA=1;????????//開總中斷
ES=1;????????//開串口中斷?????????????????????????
}
void?UartSendByte(uint8?ch){ //串口發送單字符函數
?
????SBUF=?ch;
while(!TI);
????TI?=?0;
}
void?UartSendBuf(char*bufuint8?sz){ //串口發射字符串函數
????uint8?i;
????for(i=0;i ????????UartSendByte(buf[i]);
????}
}
//接收到正確數據頭和數據結尾的處理函數
//數據頭AA5A?數據結尾BB6B
//發射數據AA5A?11?BB6B?則LED燈會取反
void?uart_handle(void)
{
if(UartBuffer[2]==0x11)
LED=!LED;
}
//串口中斷函數
//用于識別數據頭和數據結尾,如果正確失敗,則會調用uart_handle()處理函數
//用戶只需要修改uart_handle()函數完成響應的操作
void?uart_inter()?interrupt?4
{
uint8?chi;
if(RI)
{
RI=0;
ch=SBUF;
UartBuffer[write++]?=?ch;
if(UartBuffer[0]!=DATA_START0)//判斷數據頭1是否正確,如果不正確,數據指針還是0,用于下一次判斷
{
write=0;
}
else //如果數據頭1正確,判斷數據頭2是否正確
{
if((write==2)) //一定要,因為數據1正確了,但是?UartBuffer[1]?里面永遠都是有數據的,一定會進行下面的判斷
{
if((UartBuffer[1]!=DATA_START1))//如果數據頭1正確,數據頭2錯誤,給UartBuffer[0,1]賦初值
{
UartBuffer[0]=1;
UartBuffer[1]=1;
write=0;
}
else //數據頭正確
{
data_start_true=1;
}
}
}
if(data_start_true)???? //如果?數據頭正確 接下來判斷數據結尾
{
if((write>3)) //一定要的,因為write-2可能小于0,數組出錯
{
if((UartBuffer[write-2]==DATA_END0)&&(UartBuffer[write-1]==DATA_END1))//判斷數據結尾是否正確
{
uart_handle(); //數據處理函數
for(i=0;i UartBuffer[i]=1;
data_start_true=0; //數據出來完,應該讓數據頭正確標志清零
write=0; //指針清零
}
}
}
}
}
//延時函數
void?Delay_ms(int?ms)
{
????int?i?j;
????for(i=0;?i ????????for(j=0;?j<1400;?j++);
}
#define?lenth?10 //發射數據長度,可以根據單片機內存隨意修改
void?main(void){
uint8?ia[lenth];
UartConfig();?? //串口初始化
for(i=0;i a[i]=i;
LED=0;
while(1)
{
UartSendBuf(alenth);
// UartSendBuf(alenth);
// UartS
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????41150??2018-01-19?12:14??LC12S資料包V2.05\LC12S丟包率說明.docx
?????文件?????674169??2017-03-16?17:17??LC12S資料包V2.05\LC12S調試教程.docx
?????文件?????774288??2017-04-01?13:53??LC12S資料包V2.05\LC12S通信案例.pdf
?????文件??????53248??2018-04-03?10:44??LC12S資料包V2.05\上位機軟件\LC12S.exe
?????文件???39378184??2018-01-25?22:27??LC12S資料包V2.05\上位機軟件\VCX64.zip
?????文件????9471195??2018-01-25?23:02??LC12S資料包V2.05\上位機軟件\如果無法打開,請下載VCX32和VCX64?也可聯系我司客服發此文件\VCX32.zip
?????文件?????593748??2018-02-28?16:58??LC12S資料包V2.05\上位機軟件\設置軟件說明書.pdf
?????文件???????1045??2018-04-04?10:14??LC12S資料包V2.05\串口調試助手\sscom.ini
?????文件?????772096??2017-04-01?13:53??LC12S資料包V2.05\串口調試助手\串口調試助手.exe
?????文件?????139995??2017-04-01?13:53??LC12S資料包V2.05\關于LC12S多機使用抗干擾問題的解決方法.pdf
?????文件????????313??2017-04-01?13:53??LC12S資料包V2.05\說明.txt
?????目錄??????????0??2018-04-23?18:38??LC12S資料包V2.05\上位機軟件\如果無法打開,請下載VCX32和VCX64?也可聯系我司客服發此文件
?????目錄??????????0??2018-04-23?18:38??LC12S資料包V2.05\上位機軟件
?????目錄??????????0??2018-04-04?10:24??LC12S資料包V2.05\串口調試助手
?????目錄??????????0??2018-05-08?17:16??LC12S資料包V2.05
?????文件???????2183??2017-09-08?13:49??LC12S資料包V2.05\LC12S問題解答.txt
?????文件???????3776??2018-07-28?10:12??LC12S資料包V2.05\LC12S使用例程.c
?????文件????2066898??2018-11-14?16:20??LC12S資料包V2.05\LC12S無線串口模塊V2.05.pdf
-----------?---------??----------?-----??----
?????????????53972288????????????????????18
評論
共有 條評論