国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
手機(jī)通過藍(lán)牙串口與arduino通信

前段時(shí)間把藍(lán)牙透?jìng)髂K在arduino上的使用弄好了,今天拿我的手機(jī)來測(cè)試一下。

我手機(jī)是多普達(dá)S1,因?yàn)槭切胸?,沒有wifi,想控制arduino只能通過藍(lán)牙了。

還好wm6操作系統(tǒng)能運(yùn)行.net2.0開發(fā)的移動(dòng)軟件,用serialport控件來作為串口通信的主要工具。

首先把a(bǔ)rduino接上藍(lán)牙透?jìng)髂K,方法在前面的文章提到了,這里就不再敘述。

然后開啟手機(jī)的藍(lán)牙,搜索藍(lán)牙設(shè)備,能找到模塊名稱,選擇之后建立com口,我這里建立的是com6

然后就是在手機(jī)上弄個(gè)小軟件來通信了。

用serialport控件,設(shè)置好基本的屬性,主要是和arduino的波特率要一致,串口號(hào)是com6,基本就沒什么問題,我這里很快就能正常通信了。

我把我測(cè)試的代碼發(fā)來讓大家了解一下

Imports System.Text
Imports System.IO.Ports
Imports System.Threading
Imports Microsoft.WindowsMobile.Forms
Imports System.Runtime.InteropServices

Public Class Form1

    Dim receivedData As String
    Private Delegate Sub settexts()

    Private Sub sp_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles sp.DataReceived
        Try
            Dim bytesRead As Integer = sp.BytesToRead
            Dim bytes As Byte() = New Byte(bytesRead + 1) {}
            sp.Read(bytes, 0, bytes.Length)
            receivedData = System.Text.Encoding.ASCII.GetString(bytes, 0, bytes.Length - 1)
            sp.DiscardOutBuffer()
            sp.DiscardInBuffer()
            Invoke(New settexts(AddressOf settext))
        Catch ex As Exception
            MessageBox.Show(ex.Message)
            sp.Write("sync")
        End Try
    End Sub

    Private Sub settext()
        TextBox2.Text = TextBox2.Text & receivedData
        TextBox2.ScrollToCaret()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        TextBox2.Text = ""
        Try
            If sp.IsOpen = False Then
                TextBox2.Text = "串口關(guān)閉"
                sp.Open()
            End If
            sp.Write(Encoding.ASCII.GetBytes(TextBox1.Text & vbCrLf), 0, Encoding.ASCII.GetBytes(TextBox1.Text).Length)
            sp.WriteLine("")
            'sp.WriteLine(TextBox1.Text)

        Catch ex As Exception
            TextBox2.Text = ex.Message
            sp.Close()
            sp.Dispose()
        End Try
    End Sub

    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        sp.Close()
        sp.Dispose()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        connport()
    End Sub

    Private Sub portname_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles portname.SelectedIndexChanged
        connport()
    End Sub

    Private Sub connport()
        Try
            sp = New SerialPort(portname.SelectedItem, 9600, Parity.None, 8, StopBits.One)
            sp.RtsEnable = True
            sp.DtrEnable = True
            sp.ReadTimeout = 1000
            sp.Open()
            If sp.IsOpen Then
                TextBox2.Text = "串口連接"
            End If

        Catch ex As Exception
            TextBox2.Text = ex.Message
        End Try

    End Sub


End Class

 

這個(gè)代碼基本上能實(shí)現(xiàn)發(fā)送數(shù)據(jù)和同步接收數(shù)據(jù)并很好的顯示出來。但是因?yàn)閍rduino的數(shù)據(jù)會(huì)發(fā)送的很頻繁,比如時(shí)刻反饋溫度傳感器發(fā)送的溫度數(shù)據(jù)、光線傳感器發(fā)送的光線數(shù)據(jù)等,使得該軟件在接收數(shù)據(jù)的時(shí)候無法操作其他的功能,甚至?xí)偎溃苍S通過建立線程能解決這個(gè)問題,以后再弄哈

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA 限制輸入中文或只能輸入數(shù)字
VB.NET獲取系統(tǒng)當(dāng)前精確時(shí)間(毫秒級(jí))
詳解VB.net文件傳輸.(可傳輸任意文件)
VB.NET下載程序代碼實(shí)現(xiàn)
VB.NET限制文本框輸入字符
VB.NET progressbar 簡(jiǎn)單小程序
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服