freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

藍牙通訊程序設計(編輯修改稿)

2025-02-13 03:41 本頁面
 

【文章內容簡介】 藍牙設備的hci_device 結構體, 包括藍牙設備配置信息hci_info, 藍牙連接信息hci_con 和用于存儲返回分組信息的接收緩沖區(qū)hci_buf[1000], 具體如圖9所示。軟件采用前后臺的方式實現(xiàn), 前臺運行主程序,后臺定時循環(huán)調用HCI 狀態(tài)機。HCI 狀態(tài)機是一個子程序, 用來專門處理藍牙模塊返回的HCI 事件分組和HCI 數(shù)據(jù)分組。狀態(tài)機通過分析HCI 事件分組來決定相應操作, 獲取相關信息, 通過分析HCI 數(shù)據(jù)分組, 來接收實際傳輸數(shù)據(jù)并存儲到接收緩沖區(qū)。具體的HCI 狀態(tài)機的處理流程如圖10所示:HCI 狀態(tài)機初始狀態(tài)置為IDLE_STATE, 根據(jù)HCI UART 傳輸層格式規(guī)范, 按字段取藍牙模塊返回的各個字節(jié), 每個字節(jié)為一個十六進制數(shù), 不同的數(shù)代表不同的含義。第一個字節(jié)為分組指示器, 標識分組的類型。ACL 數(shù)據(jù)分組為ACL_PKT( 0x02) , SCO數(shù)據(jù)分組為SCO_PKT( 0x03) , 事件分組為EVT_PKT( 0x04) , 另外指令分組為CMD_PKT( 0x01) , 藍牙模塊只返回ACL, SCO 和事件分組。取出第一個字節(jié)判斷出分組類型。若為事件分組, 則狀態(tài)機轉換為EVENT_HDR_STATE 狀態(tài), 繼續(xù)取字節(jié), 讀出事件碼和參數(shù)長度后, 轉換到EVENT_DATA_STATE 狀態(tài), 表示再來的字節(jié)即為事件參數(shù), 讀取事件參數(shù),并調用process_event ( ) 處理事件, 完成后回到IDLE_STATE 狀態(tài)。若為ACL 數(shù)據(jù)分組, 則先轉換為ACL_HDR_STATE 狀態(tài), 取出連接句柄, 轉換為ACL_DATA_STATE 狀態(tài), 處理后續(xù)來的數(shù)據(jù), 即為實際接收到的數(shù)據(jù), 完成后回到IDLE_STATE 狀態(tài)。若為SCO 數(shù)據(jù)分組, 類同ACL 數(shù)據(jù)分組的處理過程。HCI 狀態(tài)機要通過系統(tǒng)預先設定的一個定時器定時循環(huán)調用, 雖然HCI 從UART 得到的數(shù)據(jù)流是一塊一塊的, 有可能剛好是一個分組, 有可能是幾個分組, 還可能是一個分組的部分數(shù)據(jù), 但狀態(tài)機對接收到的一塊數(shù)據(jù)流的處理是連續(xù)進行的, 數(shù)據(jù)流的間斷只會造成狀態(tài)機的暫時等待, 而不會影響其正確處理返回分組。如中途出現(xiàn)分組丟失或錯誤的字段, 狀態(tài)機會報錯并重新置回初始態(tài)。狀態(tài)機數(shù)據(jù)處理部分的程序主函數(shù)如下:hci_state_machine( ) hci 狀態(tài)機, 定時器3 定時10ms 中斷調用hci_buf_put_ch( ) uart0 中斷接收藍牙模塊返回數(shù)據(jù), 放入hci_data_buf[1000]hci_buf_get_ch( ) 從hci_data_buf[1000]讀取一個字符待狀態(tài)機分析hci_reset( ...) 復位命令, 組合命令分組, 調用send_cmd( ) 發(fā)送給藍牙模塊? 類同hci_reset, hci 共4 大類命令: 鏈路管理/ 鏈路策略/ 主機控制器/ 信息參數(shù)get_opcode( ...) 將ogf 和ocf 組合成操作碼opcodele_u16_to_u16( ...) 實現(xiàn)反位序即大小模式轉換send_cmd( ...) 將指定長度的hci 指令送入指令發(fā)送緩沖區(qū)并調用uart_send_str()發(fā)送出去uart_send_ch(...) 發(fā)送一個字符uart_send_str(...) 發(fā)送一個指定長度的字符串 PDA端的軟件設計C 環(huán)境下單片機與PDA 無線通信的實現(xiàn)目前,國內PDA 基本采用Windows Mobile 操作系統(tǒng)。Windows Mobile 系統(tǒng)是Microsoft 公司為智能移動終端設備設計的嵌入式操作系統(tǒng),基于Windows Mobile 操作系統(tǒng)的智能終端設備分Smart Phone 和Pocket PC 兩大類。其中,Smart Phone 為智能手機系統(tǒng), Pocket PC 為個人掌上電腦?,F(xiàn)在,很多Pocket PC 也加入電話功能成為Pocket PC Phone。Windows Mobile 2003 中內置. Net Compact Framework CF ,方便開發(fā)人員對Windows 智能移動終端設備的開發(fā)。Microsoft 也為Windows CE 提供了很多設備開發(fā)工具,如近年來發(fā)展迅速的Visual Studio 2008 中的Visual C 。Visual C 2008 為開發(fā)在基于Windows CE的智能設備(如Pocket PC 和Smart phone) 上運行的軟件提供豐富的集成支持,可以使用開發(fā)PC 程序時所使用的相同代碼編輯器、設計器和調試器界面,它還提供仿真程序,讓我們可以在開發(fā)計算機上運行和調試編寫的代碼。Visual C 2008 中的SerialPort 類控制串口資源非常方便,因此,本文選用Visual C 2008 來編寫藍牙串口通信程序。藍牙串口通信的基本流程包括配置資源參數(shù)、打開串口資源、通信讀寫操作和關閉串口資源。在Windows CE 系統(tǒng)中,串口與其他通信設備是作為文件進行處理的。本文對藍牙串口進行操作用到了C 2008 中的SerialPort 類,此類在. NET Framework 2. 0 版本中是新增的,用于控制串口文件資源。初始化SerialPort類實例和配置資源參數(shù)方法如下:namespace BlueTooth_RS232_{ public partial class FormMain : Form //窗體 { public FormMa
點擊復制文檔內容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1