當前位置:首頁 » 操作系統 » osal源碼

osal源碼

發布時間: 2022-07-25 17:17:13

❶ ZigBee2006無線網路與無線定位實戰的目錄

第1章 ZigBee無線網路和定位系統基礎
1.1 無線數據網路和無線定位技術廣闊的應用前景
1.2 ZigBee無線網路使用頻譜和ISM開放頻帶
1.3 熱門短距離無線數據網路技術
1.3.1 ZigBee
1.3.2 Wi-Fi
1.3.3 藍牙(Bluetooth)
1.3.4 超寬頻技術(UWB)
1.3.5 近短距無線傳輸(NFC)
1.4 典型的無線網路結構和網路拓撲
1.5 典型的無線網路定位系統
1.6 ZigBee無線網路定位技術特點
1.6.1 ZigBee技術的廣闊應用前景
1.6.2 低功耗低速技術特點
1.6.3 高可靠性的無線網路
1.6.4 網路拓撲和路由
1.6.5 安全和加密
1.6.6 協議棧模式和應用模式
1.7 練習題和答案
第2章 ZigBee無線定位單片機CC2430/CC2431
2.1 CC2430/CC2431晶元的主要特點
2.2 CC2430/CC2431晶元構架
2.3 CC2430/CC2431片上8051內核
2.3.1 增強型8051內核
2.3.2 存儲空間
2.3.3 特殊功能寄存器
2.4 CC2430/CC2431主要特徵外設
2.4.1 輸入輸出(I/O)埠
2.4.2 直接存取(DMA)控制器
2.4.3 MAC定時器
2.4.4 AES-128安全協處理器
2.4.5 14位模數轉換器(ADC)
2.5 CC2430/CC2431無線收發部分
2.5.1 IEEE802.15.4調制模式
2.5.2 接收模式
2.5.3 發送模式
2.5.4 MAC數據格式
2.5.5 CSMA/CA協處理器
2.5.6 參考設計電路
2.6 CC2430/CC2431所涉及無線通信技術
2.6.1 清潔信道評估CCA
2.6.2 無線直接頻譜技術DSSS
2.6.3 載波偵聽多點接入/沖突檢測CSMA/CA
2.7 CC2431無線定位引擎介紹
2.8 練習題和答案
第3章 建立自己ZigBee無線定位硬體平台
3.1 無線開發系統硬體平台的選擇
3.2 ZigBee無線網路/定位系統C51RF-CC2431-ZDK概述
3.3 C51RF-CC2431-ZDK模擬器
3.4 無線定位中心控制板系統:網關系統
3.5 無線參考節點和定位節點:ZigBee高頻模塊
3.6 硬體綜合測試SPP軟體
3.7 C51RF-3-F協議分析儀
3.8 習題與答案
第4章 自己ZigBee無線定位軟體平台
4.1 ZigBee軟體集成開發平台
4.2 IAR集成開發環境
4.2.1 IAR安裝
4.2.2 添加文件或新建程序文件
4.2.3 設置工程選項參數
4.2.4 編譯、連接、下載
4.2.5 模擬調試
4.3 ZigBee2006協議棧庫
4.4 無線網路定點陣圖形監視軟體
4.5 物理地址修改軟體
4.6 ZigBee數據分析儀軟體
4.7 其它輔助軟體
4.8 配套測試常式
4.9 練習題和答案
第五章 ZigBee協議棧結構和原理
5.1 ZigBee協議棧概述
5.2 IEEE802.15.4通信層
5.2.1 PHY(物理)層
5.2.2 MAC(介質接入控制子層)層
5.3 ZigBee網路層
5.3.1 網路層(Network Specification)概況
5.3.2 網路層帖結構
5.3.3 網路層功能介紹
5.4 ZigBee應用層
5.4.1 ZigBee技術應用
5.4.2 應用層(Application Layer Specification)概述
5.4.3 ZigBee應用支持子層
5.4.4 ZigBee Profile
5.4.5 ZigBee設備對象(ZDO)
5.5 ZigBee網路/定位系統配套協議棧
5.5.1 精簡版ZigBee協議棧(2004)
5.5.2 驗證版ZigBee協議棧2006
5.6 練習題和答案
第6章 ZigBee2006 基礎實驗(一)
6.1 初級實驗樣板(Sample App)
6.1.1 實驗目的
6.1.2 實驗原理
6.1.3 實驗硬體和軟體准備
6.2 ZigBee2006協議棧編譯、下載
6.2.1 設備選擇及設置
6.2.2 編譯、下載程序
6.3 實驗源代碼
6.3.1 發送一個信息包
6.3.2 發送、接收數據的過程
6.3.2 接收一個信息包
6.4 實驗內容
6.4.1 流程圖
6.4.2 路由器代碼
6.4.3 協調器代碼
6.5 採用C51RF-3-F數據分析儀分析ZigBee數據包
6.5.1 協議分析儀組成
6.5.2 加入網路
6.5.3 發送、接收數據
6.6 實驗效果
6.7 習題與答案
第7章 ZigBee 2006基礎實驗(二)
7.1 ZigBee 2006 實時操作系統簡介
7.1.1 OS術語介紹
7.1.2 OSAL API介紹
7.1.3 OSAL任務
7.2 簡單ZigBee 2006應用介面(simple api)
7.2.1 實驗目的
7.2.2 實驗原理
7.2.3 軟體准備SAPI介紹
7.3 網路形成
7.3.1 協調器格式化網路
7.3.2 路由器和終端設備加入網路
7.3.3 ZDO_StartDevice
7.4 綁定
7.4.1 綁定表格
7.4.2 綁定建立
7.4.3 綁定解除
7.5 命令
7.5.1 命令定義及使用
7.5.2 串(cluster)
7.5.3 ZCL介紹
7.5.4 PROFILE介紹
7.6 燈開關實驗
7.6.1 APP函數分析
7.6.2 燈開關實驗
7.6.3 實驗總結
7.7 溫度感測器實驗
7.7.1 設備
7.7.2 命令
7.7.3 發現和綁定
7.7.4 數據包發送和接收
7.8 習題與答案
第8章 ZigBee2006無線定位實驗
8.1 實驗目的和設備
8.1.1 實驗目的
8.1.1 實驗設備
8.2 ZigBee2006無線定位應用Profile
8.2.1 XY-RSSI 請求(串ID0X0011)
8.2.2 XY-RSSI 應答(串ID0x0012)
8.2.3 定位節點發現請求(串ID0x0013)
8.2.4 定位節點發現回答(串ID0x0014)
8.2.5 參考節點配置(串ID0x0015)單播
8.2.6 定位節點配置(串ID0x0016)單播
8.2.7 參考節點請求配置(串ID0x0017)廣播
8.2.8 定位節點請求配置(串ID0x0018)廣播
8.2.9 RSSI blast(串ID0x0019)廣播
8.3 裝載無線定位模式軟體代碼到網關
8.3.1 初始化物理地址
8.3.2 下載中心控制器軟體
8.4 參考模塊和定位模塊設定和軟體下載
8.4.1 參考模塊和移動模塊程序下載
8.4.2 設置物理地址
8.5 理解CC2431無線定位C51源代碼
8.5.1 協調器代碼
8.5.2 參考節點代碼
8.5.3 定位節點代碼
8.5.4 無線定位系統運行效果觀察
8.6 習題與答案
第9章 礦井安全 無線定位網路系統
9.1 礦井井下無線定位網路原理和實現
9.2 系統各節點電路框圖
9.3 理解無線定位網路應用程序C51源代碼
9.3.1 液晶驅動程序
9.3.2 ZigBee協議棧和API調用說明
9.3.3 參考節點設計
9.3.4 定位節點設計
9.3.5 網關設計
9.4 實驗效果
9.4.1 各節點上電復位後的數據
9.4.2 查看參考節點配置數據(參考節點請求配置(0x0017))
9.4.3 參考節點配置數據(參考節點配置(0x0015))
9.4.4 查看定位節點配置數據(定位節點請求配置(0x0018))
9.4.5 定位節點配置參數(定位節點配置(0x0016))
9.4.5 發現定位節點位置(發現定位節點請求(0x0013))
9.5 習題和答案

❷ 在IAR環境下運行時報錯

HalUARTWrite(0,next,);

這一句逗號後面少了strlen(next)

❸ 求一個c++小程序源代碼,要求200行以上,給100分,能用再加100

//=================================[說明]=======================================*/
//學生成績管理
//文件名:main.cpp
//------!!!!!!---------BOF-[程序代碼開始]-------------------

#include<iostream>
#include<string>
using namespace std;
//=============<開始定義結構體>===================================================
struct combox
{

int num;
int mark;
string name;
combox *next;

};
//=============<結束定義結構體>===================================================

//=============<開始定義Commonbox類>==============================================

//-----類體開始------------------------
class Commonbox
{

private:
combox *head;
void Swap(combox *,combox *); //交換兩個combox變數的數據域
void Print(combox *); //輸出一combox指定的記錄
combox *Find(int); //查找條例條件的記錄,並返回該記錄的指針

public:
Commonbox()
{
head=NULL;
}
int ListCount(); //統計當前鏈表的記錄總數,返回一個整數
void AddItem(int num, string name, int mark); //添加一條記錄到表尾
void RemoveItem(int); //刪除一條指定的記錄
void List(); //列出當前鏈表中的所有記錄
void Sort(); //對當前鏈表進行排序
void Search(int); //在當前鏈表查找指定記錄並輸出
float Average(); //計算平均成績
};
//-----類體結束------------------------

//-----類成員函數開始----------------------------------
int Commonbox::ListCount() //統計當前鏈表的記錄總數,返回一個整數
{

if (! head)return 0;
combox *p=head;
int n=0;
while (p)
{
n++;
p=p->next;
}
return n;

}

void Commonbox::AddItem(int num, string name, int mark) //添加一條記錄到表尾
{

if (! head)
{
head=new combox;
head->mark=mark;
head->num=num;
head->name=name;
head->next=NULL;
return;
}

combox *t=head;
while (t && t->num!=num)
t=t->next;

if (t)
{
cout<<"操作失敗:學號為"<<num<<"的記錄已經存在!"<<endl;
return;
}

combox *p=head;
while (p->next)p=p->next;
combox *p1=new combox;
p1->num=num;
p1->mark=mark;
p1->name=name;
p1->next=NULL;
p->next=p1;

return;
}

void Commonbox::RemoveItem(int num) //刪除一條指定的記錄
{

combox *t=Find(num);
if (! t)return;

combox *p=head;

//如果要刪除的記錄位於表頭
if (head==t)
{
head=head->next;
delete p;
cout <<"成功刪除學號為 "<<num<<" 的記錄!"<<endl<<endl;
return;
}

while (p->next!=t)p=p->next;
combox *p1=p->next;
p->next=p1->next;
delete p1;
cout <<"成功刪除學號為 "<<num<<" 的記錄!"<<endl<<endl;

return;
}

void Commonbox::Print(combox *p) //輸出一combox指定的記錄
{

cout<<p->num<<"\t\t";
cout<<p->name<<"\t\t";
cout<<p->mark<<endl;

return;
}

void Commonbox::List() //列出當前鏈表中的所有記錄
{

if (ListCount()==0)
{
cout <<"錯誤:當前的列表為空!"<<endl;
return;
}

combox *p=head;
cout<<"共有記錄:"<<ListCount()<<endl;
cout<<"學號\t\t姓名\t\t分數"<<endl;
while (p)
{
Print(p);
p=p->next;
}
cout <<endl;
return;
}

void Commonbox::Search(int num) //在當前鏈表查找指定記錄並輸出
{

cout <<"Searching...."<<endl;

combox *p=Find(num);
if (p)
{
cout<<"學號\t\t姓名\t\t分數"<<endl;
Print(p);
}
cout <<endl;
}

combox *Commonbox::Find(int num)
{

if (ListCount()==0)
{
cout <<"錯誤:當前的列表為空!"<<endl;
return NULL;
}

combox *p=head;
while (p)
{
if (p->num==num)break;
p=p->next;
}

if (! p)
{
cout <<"錯誤:找不到該記錄!\n";
return NULL;
}

return p;
}

void Commonbox::Swap(combox *p1, combox *p2) //交換兩個combox變數的數據域
{

combox *temp=new combox;
temp->num=p1->num;
temp->mark=p1->mark;
temp->name=p1->name;

p1->num=p2->num;
p1->mark=p2->mark;
p1->name=p2->name;

p2->num=temp->num;
p2->mark=temp->mark;
p2->name=temp->name;

}

void Commonbox::Sort() //對當前鏈表進行排序
{
cout <<"Sorting..."<<endl;
if (ListCount()<2) return;

combox *temp=NULL,*p=NULL,*p1=NULL,*p2=NULL,*k=NULL;
int n=ListCount(),i,j;

p=head;
for (i=1;i<n;i++)
{
k=p;
p1=p->next;
for (j=0;j<n-i;j++)
{
if (k->num > p1->num)
{
k=p1;
}
p1=p1->next;
}
if (p!=k)Swap(k,p);
p=p->next;
}
cout <<"Complete successfully!"<<endl<<endl;
return;
}

float Commonbox::Average() //計算平均成績
{

if (ListCount()==0)
{
cout <<"錯誤:當前的列表為空!"<<endl;
return -1;
}
int sum=0,n=0;
combox *p=head;
while (p)
{
sum += p->mark;
p=p->next;
n++;
}
return float(sum)/n;
}
//-----類成員函數結束----------------------------------

//=============<結束定義Commonbox類>==============================================

Commonbox student; //定義全局變數

int Menu()
{
cout <<"===========[主選單:]==========="<<endl;
int n=1,select=-1;
cout <<n++<<".輸入學生成績;"<<endl<<endl;
cout <<n++<<".按學號排序;"<<endl<<endl;
cout <<n++<<".按學號查找記錄;"<<endl<<endl;
cout <<n++<<".刪除由學號指定的記錄;"<<endl<<endl;
cout <<n++<<".列出所有記錄;"<<endl<<endl;
cout <<n++<<".計算平均成績;"<<endl<<endl;
cout <<"0.退出;"<<endl<<endl;

cout <<"[請選擇(輸入相應數字)]:";
cin >>select;
return select;
}

char Exit() //返回一個字元患,用於確認退出
{
char s;
cout<<"確定要退出程序嗎?[Y/N]:";
cin >>s;
return s;
}

void Input(int *num, string *name, int *mark) //輸入學生信息
{

cout <<"請輸入 學號 姓名 分數:";
cin >>*num;
if (*num==-1)return;
cin >>*name>>*mark;

return;
}

void AddNew() //增加記錄
{

int num=0,mark=0;
string name="";

cout<<endl<<"當輸入的學號為-1時表示結束輸入."<<endl;
Input(&num, &name, &mark);
while (num!=-1)
{
student.AddItem(num,name,mark);
Input(&num, &name, &mark);
}
return;
}

void DoFind() //按學號查找
{

int num;
cout<<endl<<"當輸入的學號為-1時表示結束輸入."<<endl;
do
{
cout <<"請輸入要查找的學生的學號: ";
cin>>num;
if (num==-1)continue;
student.Search(num);
}
while (num!=-1);

return;
}

void DoDelete() //刪除記錄
{

cout<<endl<<"當輸入的學號為-1時表示結束輸入."<<endl;
int num;
do
{
cout <<"請輸入要刪除的學生的學號:";
cin>>num;
if (num==-1)continue;
student.RemoveItem(num);
}
while (num!=-1);
return;
}

void ShowAverage() //輸出平均數
{

float avr=student.Average();
if (avr>0)
{
cout<<"共有記錄:\t"<<student.ListCount()<<endl<<endl;
cout<<"平均成績:\t"<<avr<<endl<<endl;
}
return;
}
//-------******<主函數開始>******-------

int main()
{

cout<<"Welcome!\n學生成績管理系統\nVer 1.01\nBy FondBoy\n\n";

int select;
char s;

while (1)
{
select=Menu();
switch (select)
{
case 0: //退出程序
s=Exit();
if (s=='y' || s=='Y')return 0;
break;

case 1: //輸入學生成績
AddNew();
break;

case 2: //按學號排序
student.Sort();
break;

case 3: //按學號查找記錄
DoFind();
break;

case 4: //刪除由學號指定的記錄
DoDelete();
break;

case 5: //列出所有記錄
student.List();
break;

case 6: //輸出平均成績
ShowAverage();
break;

default:
cout<<"無效輸入!"<<endl;
}
}

return 0;
}
//-------******<主函數結束>******-------
//------!!!!!!---------EOF-[程序代碼結束]-------------------

熱點內容
kr腳本 發布:2025-01-19 20:17:41 瀏覽:518
幫我開啟存儲 發布:2025-01-19 20:17:39 瀏覽:813
s9存儲縮水 發布:2025-01-19 20:08:06 瀏覽:334
2b2t的伺服器編號是什麼 發布:2025-01-19 19:58:55 瀏覽:873
androidstudio下載與安裝 發布:2025-01-19 19:58:14 瀏覽:559
拉鉤演算法 發布:2025-01-19 19:58:14 瀏覽:865
python中讀取文件 發布:2025-01-19 19:37:26 瀏覽:369
網吧電腦連接到steam伺服器錯誤 發布:2025-01-19 19:37:17 瀏覽:601
mc怎麼在別人的伺服器開創造 發布:2025-01-19 19:37:16 瀏覽:70
visual怎麼編譯 發布:2025-01-19 19:36:03 瀏覽:83