|
單片機(jī)與電腦通信為一部分,單片機(jī)與其他元件或模塊通信是另一部分。單片機(jī)跟電腦就像是兩個(gè)人在交流一樣,單片機(jī)有單片機(jī)要負(fù)責(zé)的事情,電腦有電腦要負(fù)責(zé)的事情。兩者之間的溝通可以用國(guó)語,可以用方言等等,只要雙方可以識(shí)別就好。有需要的時(shí)候電腦只需要告訴單片機(jī)要做的事情,這叫發(fā)指令。
常用的指令定義可以用16進(jìn)制或者固定格式的字符串。簡(jiǎn)單的控制和數(shù)據(jù)交流建議用16進(jìn)制就可以,處理起來比較簡(jiǎn)單,減少出錯(cuò)。
最簡(jiǎn)單的16進(jìn)制指令:
FF 01 00 00 00 00 00 55
這個(gè)是一個(gè)8個(gè)字節(jié)的數(shù)據(jù)。(一個(gè)字節(jié)為8位即“FF”)
例子;
unsigned char sndata[8];//定義發(fā)送數(shù)據(jù)緩存
一般頭是固定的:sndata[0]=0xFF;
一般最后一位是校驗(yàn)位;sndata[7]=0xFF;可以是自定義的一位數(shù)據(jù),一般是通過相關(guān)計(jì)算得的一個(gè)數(shù)據(jù)。
剩下的就是自定義的功能位:
比如第二位為led控制;
定義:sndata[1]=0x00; //關(guān)閉
定義:sndata[1]=0x01; //開啟
這部分都是要在單片機(jī)中定義好。因?yàn)檫@些事情都是單片機(jī)負(fù)責(zé)的事情。相反也是如此。
|
|