91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)標(biāo)準(zhǔn)socket編程應(yīng)用于英創(chuàng)主板的藍牙接口

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-05 10:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

藍牙(bluetooth)技術(shù)是一種低功耗短距離的無線通信技術(shù),被廣泛應(yīng)用于10米以內(nèi)的嵌入式設(shè)備通信當(dāng)中。其最高傳輸速度根據(jù)藍牙協(xié)議的版本不同,有1Mbps(BR、LE)、2-3Mbps(EDR)、24Mbps(HS)之分。在工業(yè)現(xiàn)場,藍牙技術(shù)可以代替串行線纜,實現(xiàn)無線通信。在智能手機普及的今天,通過藍牙與手機建立連接,手機作為上位機發(fā)送指令給下位機,可以實現(xiàn)低成本的UI控制方案。

BlueZ是當(dāng)前比較成熟的藍牙協(xié)議棧,作為Linux系統(tǒng)的官方協(xié)議棧,集成在Linux內(nèi)核之中。英創(chuàng)公司在ESM928x的Linux系統(tǒng)中,又移植了BlueZ用戶空間協(xié)議棧和相關(guān)工具,使得ESM928x Linux平臺能夠支持藍牙技術(shù),通過socket編程實現(xiàn)藍牙無線連接,代替串行線纜進行通信。

圖1ESM928xW系列主板+底板

用戶使用藍牙串口功能主要分為兩個步驟:藍牙功能配置和socket應(yīng)用程序編寫。

1、藍牙功能配置

1、加載ap2610藍牙模塊上電驅(qū)動

insmod /lib/modules/4.1.14/ap6210_bt_bcm20710.ko

2、加載藍牙固件,設(shè)定波特率、藍牙地址、使能hci等

brcm_patchram_plus --patchram /lib/firmware/ap6210/bcm20702a.hcd --baudrate 3000000 --enable_hci --bd_addr aa:00:55:44:33:22 --no2bytes --tosleep 5000 /dev/ttyS5 1> /dev/null&

3、啟動dbus后臺服務(wù)

dbus-daemon --system --nofork --nopidfile &

4、以兼容模式啟動bluetooth后臺服務(wù)

/libexec/bluetooth/bluetoothd -C &

5、啟動hci0,并設(shè)置name和可見屬性

hciconfig hci0 up

hciconfig hci0 name esm9287

hciconfig hci0 piscan

hciconfig hci0 reset

以上5個步驟已經(jīng)寫成一個shell腳本set_bluetooth.sh,用戶也可以直接運行該腳本完成以上設(shè)置。至此,完成了對藍牙的設(shè)置,可以通過hciconfig hci0 -a來查看藍牙信息,如圖2。這時,其他藍牙設(shè)備就可以搜索到esm9287,圖3所示是android手機搜索到esm9287藍牙設(shè)備,點擊即可完成配對。

圖2使用hciconfig查看藍牙信息

圖3搜索esm9287并配對

2、Socket應(yīng)用編程

藍牙協(xié)議棧中的RFCOMM協(xié)議實現(xiàn)了對串口RS232仿真,最多能提供兩個藍牙設(shè)備之間60路的連接。應(yīng)用程序中,可以使用socket進行服務(wù)端和客戶端的編程,其過程與TCP/IP的socket通信沒有太大區(qū)別。

a)環(huán)境配置

開發(fā)bluez協(xié)議棧的藍牙應(yīng)用需要用到libbluetooth.so和相關(guān)頭文件,需要添加到eclipse對應(yīng)的藍牙項目中。libbluetooth.so是編譯bluez協(xié)議棧生產(chǎn)的動態(tài)鏈接庫,提供了頭文件bluetooth.h、hci_lib.h、sdp_lib.h中的函數(shù)實體,實現(xiàn)藍牙地址與常用數(shù)據(jù)類型的轉(zhuǎn)換、hci設(shè)備和sdp服務(wù)的一系列操作函數(shù)。

1、在項目中新建文件夾include/bluetooth,其中放入藍牙協(xié)議相關(guān)頭文件;新建文件夾lib,其中放動態(tài)鏈接庫libbluetooth.so。

圖4新建include和lib文件夾

2、進入項目Properties設(shè)置,添加項目下的include文件夾為GCC C++ Compiler和GCC C Complier編譯器的頭文件路徑(下圖是GCC C++ Compiler的設(shè)置,GCC C Compiler設(shè)置步驟相同)。

圖5添加頭文件搜索路徑

3、為Sourcery G++ Lite C++ Linker鏈接器添加libbluetooth.so庫文件及搜索路徑,如下圖。

圖6添加編譯庫及搜索路徑

b)服務(wù)端程序

1、申請藍牙RFCOMM socket

s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

2、綁定本地適配器,BDADDR_ANY默認(rèn)為第一個可用藍牙適配器

loc_addr.rc_family = AF_BLUETOOTH;

loc_addr.rc_bdaddr = *BDADDR_ANY;

loc_addr.rc_channel = (uint8_t) 1;

bind(s, (structsockaddr *)&loc_addr,sizeof(loc_addr));

3、設(shè)置socket監(jiān)聽模式,這里只允許建立一個連接

listen(s, 1);

4、等待連接

client = accept(s, (structsockaddr *)&rem_addr, &opt);

5、select模式讀取socket數(shù)據(jù)流

while(1)

{

FD_ZERO(&working_set);

max_sd = client;

FD_SET(client, &working_set);

timeout.tv_sec = 3 * 60;

timeout.tv_usec = 0;

// Call select() and wait 5 minutes for it to complete.

printf("Waiting on select() %ld sec...\n", timeout.tv_sec);

intrc_select = select(max_sd + 1, &working_set, NULL, NULL, &timeout);

// Check to see if the select call failed.

if(rc_select < 0)

{

perror(" select() failed");

break;

}

elseif(rc_select > 0)

{

if(FD_ISSET(max_sd,&working_set))

{

// read data from the client

bytes_read = read(client, buf,sizeof(buf));

if( bytes_read > 0 ) {

printf("received: [%s]\n", buf);

}

else

{

break;

}

write(client,ack,sizeof(ack));

}

}

// Else if rc_select == 0 then the 5 minute time out expired.

else

{

printf(" select() timed out.\n");

break;

}

}

6、關(guān)閉套接字

close(client);

close(s);

c)客戶端

1、申請藍牙RFCOMM socket

s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

2、設(shè)置藍牙連接服務(wù)器的地址

structsockaddr_rc addr = { 0 };

// set the connection parameters (who to connect to)

addr.rc_family = AF_BLUETOOTH;

addr.rc_channel = (uint8_t) 1;

str2ba( dest, &addr.rc_bdaddr );

3、連接藍牙服務(wù)器

// connect to server

status = connect(s, (structsockaddr *)&addr,sizeof(addr));

4、讀寫socket數(shù)據(jù)流

for(i = 0; i < 3; i++)

{

// send a message

write(s, message[i], strlen(message[i])+1);

printf("write "%s" to %s\n", message[i],dest);

bytes_read = read(s, buf,sizeof(buf));

if( bytes_read > 0 ) {

printf("received: [%s]\n", buf);

}

}

其中,message[i]為發(fā)送內(nèi)容的地址。

5、關(guān)閉socket

close(s);

在一張板子上運行藍牙rfcomm服務(wù)程序,在另一張板子上運行藍牙rfcomm客戶端程序,如圖6、圖7所示:

圖7服務(wù)端程序

圖8客戶端程序

通過socket編程,藍牙應(yīng)用程序可以像tcp/ip的網(wǎng)絡(luò)編程一樣,建立連接,實現(xiàn)無線通信。如果有用戶對藍牙的串口socket編程感興趣,可以聯(lián)系我們。我們將提供驅(qū)動文件、藍牙庫文件及相應(yīng)的示例程序。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6107

    瀏覽量

    37079
  • 安卓
    +關(guān)注

    關(guān)注

    5

    文章

    2184

    瀏覽量

    60264
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    創(chuàng)產(chǎn)業(yè)駛?cè)肟燔嚨?,國產(chǎn)工控主板成自主可控關(guān)鍵支撐

    當(dāng)前,我國信創(chuàng)產(chǎn)業(yè)規(guī)模大幅突破,信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)迎來高速發(fā)展期。發(fā)展信創(chuàng),早已超越單純的技術(shù)升級范疇,成為保障國家信息安全、推動經(jīng)濟高質(zhì)
    的頭像 發(fā)表于 03-04 14:18 ?36次閱讀
    信<b class='flag-5'>創(chuàng)</b>產(chǎn)業(yè)駛?cè)肟燔嚨?,國產(chǎn)工控<b class='flag-5'>主板</b>成自主可控關(guān)鍵支撐

    創(chuàng)國產(chǎn)化引領(lǐng)丨康仕攜手龍芯打造信創(chuàng)國產(chǎn)化工控全場景解決方案

    基于龍芯平臺的國產(chǎn)化工控產(chǎn)品矩陣已全面成型,全系列符合信創(chuàng)國產(chǎn)化標(biāo)準(zhǔn)。 圍繞龍芯2K3000與龍芯3B6000M處理器,康仕完成覆蓋邊緣計算、智能制造、智能交通、移動加固計算等領(lǐng)域的全場景信
    的頭像 發(fā)表于 02-24 16:11 ?1123次閱讀
    信<b class='flag-5'>創(chuàng)</b>國產(chǎn)化引領(lǐng)丨<b class='flag-5'>英</b>康仕攜手龍芯打造信<b class='flag-5'>創(chuàng)</b>國產(chǎn)化工控全場景解決方案

    國產(chǎn)金融主板:賦能智慧金融,驅(qū)動信創(chuàng)產(chǎn)業(yè)升級

    隨著信息技術(shù)的飛速迭代,信創(chuàng)產(chǎn)業(yè)已在全球范圍內(nèi)崛起,成為拉動經(jīng)濟增長、激活創(chuàng)新動能的核心力量。在信創(chuàng)產(chǎn)業(yè)的關(guān)鍵布局中,智慧金融建設(shè)是重中之重,而國產(chǎn)金融主板的規(guī)?;瘧?yīng)用,正為智慧金融建
    的頭像 發(fā)表于 12-31 09:03 ?173次閱讀
    國產(chǎn)金融<b class='flag-5'>主板</b>:賦能智慧金融,驅(qū)動信<b class='flag-5'>創(chuàng)</b>產(chǎn)業(yè)升級

    國產(chǎn)芯筑基,飛騰主板賦能信創(chuàng)未來

    信息技術(shù)自主可控成為國家戰(zhàn)略的今天,信創(chuàng)產(chǎn)業(yè)正從“政策驅(qū)動”邁向“市場驅(qū)動”的高質(zhì)量發(fā)展新階段。作為信創(chuàng)產(chǎn)業(yè)鏈的核心硬件基石,主板的國產(chǎn)化水平直接決定著整個
    的頭像 發(fā)表于 12-30 09:49 ?202次閱讀
    國產(chǎn)芯筑基,飛騰<b class='flag-5'>主板</b>賦能信<b class='flag-5'>創(chuàng)</b>未來

    socket是什么

    Socket(套接字)是計算機網(wǎng)絡(luò)中的一個概念,它指示了一個可以進行網(wǎng)絡(luò)通信的軟件端點。通過使用Socket,計算機程序可以通過網(wǎng)絡(luò)進行通信。Socket API提供了一套標(biāo)準(zhǔn)的網(wǎng)絡(luò)通
    發(fā)表于 12-03 08:27

    龍芯中科助力2025教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    2025年11月13日-15日,由中國教育技術(shù)協(xié)會主辦、浙江大學(xué)與中國教育技術(shù)協(xié)會網(wǎng)絡(luò)安全專業(yè)委員會聯(lián)合承辦,中國電子工業(yè)標(biāo)準(zhǔn)技術(shù)協(xié)會信息技術(shù)
    的頭像 發(fā)表于 11-21 16:23 ?792次閱讀

    誠邁科技信創(chuàng)電腦助力2025第二屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿收官

    11月15日,由中國教育技術(shù)協(xié)會主辦、浙江大學(xué)與中國教育技術(shù)協(xié)會網(wǎng)絡(luò)安全專業(yè)委員會聯(lián)合承辦,中國電子工業(yè)標(biāo)準(zhǔn)技術(shù)協(xié)會信息技術(shù)應(yīng)用創(chuàng)新工作委
    的頭像 發(fā)表于 11-17 17:58 ?677次閱讀
    誠邁科技信<b class='flag-5'>創(chuàng)</b>電腦助力2025第二屆教育<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新大賽圓滿收官

    新時代的硬核基石:龍芯工控主板助力信創(chuàng)產(chǎn)業(yè)新基建

    在數(shù)字技術(shù)重塑產(chǎn)業(yè)格局的今天,信創(chuàng)產(chǎn)業(yè)已成為保障國家信息技術(shù)安全的核心戰(zhàn)略。作為工業(yè)自動化系統(tǒng)的大腦,工控主板的自主可控程度直接決定信創(chuàng)新基建的穩(wěn)固性。
    的頭像 發(fā)表于 11-05 13:54 ?295次閱讀

    智慧新核心,龍芯主板助力信創(chuàng)體系再升級

    信息技術(shù)飛速發(fā)展的當(dāng)下,信創(chuàng)體系的自主可控與創(chuàng)新升級已成為國家戰(zhàn)略層面的關(guān)鍵任務(wù)。作為信創(chuàng)產(chǎn)業(yè)發(fā)展的重要基礎(chǔ)硬件支撐,國產(chǎn)工控主板正發(fā)揮著日益重要的作用。
    的頭像 發(fā)表于 08-11 09:14 ?701次閱讀

    飛騰主板為信創(chuàng)產(chǎn)業(yè)發(fā)展提高硬實力

    信息技術(shù)飛速發(fā)展的當(dāng)下,信創(chuàng)產(chǎn)業(yè)已成為我國實現(xiàn)科技自立自強、保障國家信息安全的關(guān)鍵領(lǐng)域。信創(chuàng),即信息技術(shù)應(yīng)用創(chuàng)新,其核心目標(biāo)是實現(xiàn)
    的頭像 發(fā)表于 07-22 18:20 ?711次閱讀

    創(chuàng)浪潮澎湃,國產(chǎn)主板迎來黃金時代!

    2025年7月,表示必須在2027年底前完成信創(chuàng)100%替代,覆蓋基礎(chǔ)硬件、基礎(chǔ)軟件等核心領(lǐng)域。在信息技術(shù)應(yīng)用創(chuàng)新浪潮席卷下,國產(chǎn)主板作為計算機系統(tǒng)的骨架,正從幕后走向臺前。政策加持、技術(shù)
    的頭像 發(fā)表于 07-21 14:00 ?505次閱讀

    中星微技術(shù)斬獲2025金???b class='flag-5'>創(chuàng)企業(yè)獎

    6月14日,由中國證券報主辦的2025科創(chuàng)金牛獎頒獎典禮在上海市舉行,2025科創(chuàng)金牛獎獲獎名單現(xiàn)場揭曉。其中中星微技術(shù)獲得新一代信息技術(shù)金???b class='flag-5'>創(chuàng)
    的頭像 發(fā)表于 06-16 14:16 ?1192次閱讀

    科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術(shù)應(yīng)用創(chuàng)新”,是國家推動IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術(shù)層面的創(chuàng)新,更承載著保障國家網(wǎng)絡(luò)安全、推動產(chǎn)業(yè)升級和實現(xiàn)數(shù)字主權(quán)的重任。簡單來
    的頭像 發(fā)表于 06-13 10:06 ?8316次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新”戰(zhàn)略

    諾達斬獲第四屆“創(chuàng)贏未來”集成電路賽道一等獎

    日前,“創(chuàng)贏未來”第四屆長三角G60科創(chuàng)走廊科技與產(chǎn)業(yè)創(chuàng)新大賽(松江賽區(qū))暨第五屆“海聚英才”全球創(chuàng)新創(chuàng)業(yè)大賽(松江區(qū)選拔賽)成功舉辦,諾達憑借其EDA軟件及解決方案,從80余個硬科技項目中脫穎而出,斬獲集成電路賽道一等獎!
    的頭像 發(fā)表于 05-23 10:16 ?935次閱讀

    創(chuàng)浪潮下,國產(chǎn)主板有什么新的發(fā)展機遇?

    信息技術(shù)應(yīng)用創(chuàng)新浪潮的推動下,國產(chǎn)主板迎來了諸多新的發(fā)展機遇。信創(chuàng)產(chǎn)業(yè)旨在實現(xiàn)信息技術(shù)領(lǐng)域的自主可控,這一戰(zhàn)略目標(biāo)為國產(chǎn)主板的發(fā)展提供了廣
    的頭像 發(fā)表于 05-09 09:24 ?728次閱讀
    信<b class='flag-5'>創(chuàng)</b>浪潮下,國產(chǎn)<b class='flag-5'>主板</b>有什么新的發(fā)展機遇?