當前位置:首頁 » 操作系統 » 串口通信程序源碼

串口通信程序源碼

發布時間: 2022-07-24 11:41:41

1. RS232串口通信程序(VC++實現)

visual
c++_turbo
c串口通信編程實踐

2. 【急求】mfc 實現串口編程的源代碼

1.建立項目:打開VC++6.0,建立一個基於對話框的MFC應用程序SCommTest(與我源代碼一致,等會你會方便一點);
2.在項目中插入MSComm控制項 選擇Project菜單下Add To Project子菜單中的 Components and Controls…選項,在彈出的對話框中雙擊Registered ActiveX Controls項(稍等一會,這個過程較慢),則所有注冊過的ActiveX控制項出現在列表框中。 選擇Microsoft Communications Control, version 6.0,,單擊Insert按鈕將它插入到我們的Project中來,接受預設的選項。(如果你在控制項列表中看不到Microsoft Communications Control, version 6.0,那可能是你在安裝VC6時沒有把ActiveX一項選上,重新安裝VC6,選上ActiveX就可以了),
這時在ClassView視窗中就可以看到CMSComm類了,(注意:此類在ClassWizard中看不到,重構clw文件也一樣),並且在控制項工具欄Controls中出現了電話圖標(如圖1所示),現在要做的是用滑鼠將此圖標拖到對話框中,程序運行後,這個圖標是看不到的。
3.利用ClassWizard定義CMSComm類控制對象 打開ClassWizard->Member Viariables選項卡,選擇CSCommTestDlg類,為IDC_MSCOMM1添加控制變數:m_ctrlComm,這時你可以看一看,在對話框頭文件中自動加入了//{{AFX_INCLUDES() #i nclude "mscomm.h" //}}AFX_INCLUDES (這時運行程序,如果有錯,那就再從頭開始)。
4.在對話框中添加控制項 向主對話框中添加兩個編輯框,一個用於接收顯示數據ID為IDC_EDIT_RXDATA,另一個用於輸入發送數據,ID為IDC_EDIT_TXDATA,再添加一個按鈕,功能是按一次就把發送編輯框中的內容發送一次,將其ID設為IDC_BUTTON_MANUALSEND。別忘記了將接收編輯框的Properties->Styles中把Miltiline和Vertical Scroll屬性選上,發送編輯框若你想輸入多行文字,也可選上Miltiline。
再打開ClassWizard->Member Viariables選項卡,選擇CSCommTestDlg類, 為IDC_EDIT_RXDATA添加CString變數m_strRXData, 為IDC_EDIT_TXDATA添加CString變數m_strTXData。說明: m_strRXData和m_strTXData分別用來放入接收和發送的字元數據。
5.添加串口事件消息處理函數OnComm() 打開ClassWizard->Message Maps,選擇類CSCommTestDlg,選擇IDC_MSCOMM1,雙擊消息OnComm,將彈出的對話框中將函數名改為OnComm,(好記而已)OK。
這個函數是用來處理串口消息事件的,如每當串口接收到數據,就會產生一個串口接收數據緩沖區中有字元的消息事件,我們剛才添加的函數就會執行,我們在OnComm()函數加入相應的處理代碼就能實現自已想要的功能了。請你在函數中加入如下代碼:
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //設置BYTE數組 An 8-bit integerthat is not signed.
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值為2表示接收緩沖區內有字元
{ ////////以下你可以根據自己的通信協議加入處理代碼
variant_inp=m_ctrlComm.GetInput(); //讀緩沖區
safearray_inp=variant_inp; //VARIANT型變數轉換為ColeSafeArray型變數
len=safearray_inp.GetOneDimSize(); //得到有效數據長度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//轉換為BYTE型數組
for(k=0;k<len;k++) //將數組轉換為Cstring型變數
{
BYTE bt=*(char*)(rxdata+k); //字元型
strtemp.Format("%c",bt); //將字元送入臨時變數strtemp存放
m_strRXData+=strtemp; //加入接收編輯框對應字元串
}
}
UpdateData(FALSE); //更新編輯框內容
}

到目前為止還不能在接收編輯框中看到數據,因為我們還沒有打開串口,但運行程序不應該有任何錯誤,不然,你肯定哪兒沒看仔細,因為我是打開VC6對照著做一步寫一行的,運行試試。沒錯吧?那麼做下一步:
6.打開串口和設置串口參數 你可以在你需要的時候打開串口,例如在程序中做一個開始按鈕,在該按鈕的處理函數中打開串口。現在我們在主對話框的CSCommTestDlg::OnInitDialog()打開串口,加入如下代碼:
// TODO: Add extra initialization here
if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //選擇com1
if( !m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE);//打開串口
else
AfxMessageBox("cannot open serial port");
m_ctrlComm.SetSettings("9600,n,8,1"); //波特率9600,無校驗,8個數據位,1個停止位
m_ctrlComm.SetInputMode(1); //1:表示以二進制方式檢取數據
m_ctrlComm.SetRThreshold(1);
//參數1表示每當串口接收緩沖區中有多於或等於1個字元時將引發一個接收數據的OnComm事件
m_ctrlComm.SetInputLen(0); //設置當前接收區數據長度為0
m_ctrlComm.GetInput();//先預讀緩沖區以清除殘留數據

現在你可以試試程序了,將串口線接好後,打開串口調試助手,並將串口設在com2,選上自動發送,也可以等會手動發送。再執行你編寫的程序,接收框里應該有數據顯示了。
7.發送數據 先為發送按鈕添加一個單擊消息即BN_CLICKED處理函數,打開ClassWizard->Message Maps,選擇類CSCommTestDlg,選擇IDC_BUTTON_MANUALSEND,雙擊BN_CLICKED添加OnButtonManualsend()函數,並在函數中添加如下代碼:
void CSCommTestDlg::OnButtonManualsend()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE); //讀取編輯框內容
m_ctrlComm.SetOutput(COleVariant(m_strTXData));//發送數據
}
運行程序,在發送編輯框中隨意輸入點什麼,單擊發送按鈕,我們通過把RS232的2.3兩口短接,在一台電腦上顯示串口的收發數據!
最後說明一下,由於用到VC控制項,在沒有安裝VC的計算機上運行時要從VC中把mscomm32.ocx、msvcrt.dll、mfc42.dll拷到Windows目錄下的System子目錄中(win2000為System32)並再進行注冊設置

3. 求C#串口通信程序源代碼

http://blog.csdn.net/wuyazhe/article/category/695097

4. 求c++串口通信實例源代碼

我這里倒是有一個現成的C++串口通信的程序,多線程的,可以直接運行,而且是非同步觸發機制,僅憑你一聲感謝恐怕讓我有些為難,因為我也花費了大量的時間和精力去研究和編寫並應用。

5. 求C++ C語言大神幫忙弄一個串口通信的代碼

這是我以前寫的一個串口通訊文件,全部貼出來了,希望對你有幫助,包括設置,發送,接受數據,你可以好好看看,祝你成功
// 串口Dlg.cpp : 實現文件
//
#include "stdafx.h"
#include "串口.h"
#include "串口Dlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// 用於應用程序「關於」菜單項的 CAboutDlg 對話框
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// 對話框數據
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 實現
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()

// C串口Dlg 對話框

C串口Dlg::C串口Dlg(CWnd* pParent /*=NULL*/)
: CDialogEx(C串口Dlg::IDD, pParent)
, m_Selection(0)
, m_recv(_T(""))
, m_send(_T(""))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void C串口Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_MSCOMM1, m_CMscomm);
DDX_Control(pDX, IDC_COMBO2, m_CComboBox);
DDX_Text(pDX, IDC_RECV, m_recv);
DDX_Text(pDX, IDC_SEND, m_send);
}
BEGIN_MESSAGE_MAP(C串口Dlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, &C串口Dlg::OnBnClickedButton1)
ON_CBN_SELCHANGE(IDC_COMBO2, &C串口Dlg::OnSelchangeCombo2)
ON_WM_LBUTTONDBLCLK()
ON_BN_CLICKED(IDC_BUTTON2, &C串口Dlg::OnBnClickedButton2)
ON_WM_DRAWITEM()
END_MESSAGE_MAP()

// C串口Dlg 消息處理程序
BOOL C串口Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 將「關於...」菜單項添加到系統菜單中。
// IDM_ABOUTBOX 必須在系統命令范圍內。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 設置此對話框的圖標。當應用程序主窗口不是對話框時,框架將自動
// 執行此操作
SetIcon(m_hIcon, TRUE); // 設置大圖標
SetIcon(m_hIcon, FALSE); // 設置小圖標
// TODO: 在此添加額外的初始化代碼
m_CMscomm.put_CommPort(2);
if(m_CMscomm.get_PortOpen())
m_CMscomm.put_PortOpen(0);//解除佔用
m_CMscomm.put_PortOpen(1);//打開串口
static CString str("9600,n,8,1");
m_CMscomm.get_Input();
m_CMscomm.put_RThreshold(1);
m_CMscomm.put_Settings(str);
static char ch[10];
CString str1("com");
for(int i=1;i<10;i++)
{
itoa(i,ch,10);
m_CComboBox.AddString(str1+ch);

}
m_CComboBox.SetCurSel(0);
return TRUE; // 除非將焦點設置到控制項,否則返回 TRUE
}
void C串口Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID, lParam);
}
}
// 如果向對話框添加最小化按鈕,則需要下面的代碼
// 來繪制該圖標。對於使用文檔/視圖模型的 MFC 應用程序,
// 這將由框架自動完成。
void C串口Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用於繪制的設備上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使圖標在工作區矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 繪制圖標
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
CWindowDC dc(this);
CFont font; //設置字體
CBrush brush;
brush.CreateSolidBrush(255);
font.CreatePointFont(150,_T("華文行楷"));
dc.SelectObject(&font);
dc.SelectObject(&brush);
//dc.TextOut(250,300,_T("大族激光軟體中心"));
}
//當用戶拖動最小化窗口時系統調用此函數取得游標
//顯示。
HCURSOR C串口Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}

void C串口Dlg::OnBnClickedButton1()
{
static char ch1[10];
CString str("");
if(m_CMscomm.get_PortOpen())
m_CMscomm.put_PortOpen(false);
m_CMscomm.put_CommPort(m_Selection+1);
m_CMscomm.put_PortOpen(m_Selection+1);
str.Format("打開串口%d成功",m_Selection+1);
if(m_CMscomm.get_PortOpen())
{
MessageBox(str);
}
else
{

MessageBox("不能打串口");
}

//MessageBox(ch1);

// TODO: 在此添加控制項通知處理程序代碼
}

void C串口Dlg::OnSelchangeCombo2()
{
// TODO: 在此添加控制項通知處理程序代碼
//int m_Selection;
m_Selection=m_CComboBox.GetCurSel();

}

void C串口Dlg::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
/*short m_short=m_CMscomm.get_CommPort();
CString str;
str.Format(_T("當前打開埠:%d"),m_short+1);
MessageBox(str);
CDialogEx::OnLButtonDblClk(nFlags, point);*/
}

BEGIN_EVENTSINK_MAP(C串口Dlg, CDialogEx)
ON_EVENT(C串口Dlg, IDC_MSCOMM1, 1, C串口Dlg::OnCommMscomm1, VTS_NONE)
END_EVENTSINK_MAP()

void C串口Dlg::OnCommMscomm1()
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //設置BYTE數組 An 8-bit integerthat is not signed.
CString strtemp; if(m_CMscomm.get_CommEvent()==2) //事件值為2表示接收緩沖區內有字元
{ ////////以下你可以根據自己的通信協議加入處理代碼
variant_inp=m_CMscomm.get_Input(); //讀緩沖區
safearray_inp=variant_inp; //VARIANT型變數轉換為ColeSafeArray型變數
len=safearray_inp.GetOneDimSize(); //得到有效數據長度
for(k=0;k<len;k++) safearray_inp.GetElement(&k,rxdata+k);//轉換為BYTE型數組
for(k=0;k<len;k++) //將數組轉換為Cstring型變數
{ BYTE bt=*(char*)(rxdata+k); //字元型
strtemp.Format("%c",bt); //將字元送入臨時變數strtemp存放
m_send+=strtemp; //加入接收編輯框對應字元串
}
}
UpdateData(FALSE);
}

void C串口Dlg::OnBnClickedButton2()
{
UpdateData();
m_CMscomm.put_Output((COleVariant) m_send);
SetWindowLong(m_hWnd,GWL_EXSTYLE,GetWindowLong(m_hWnd,GWL_EXSTYLE) | WS_EX_ACCEPTFILES);
}

void C串口Dlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
MessageBox("sfsfe");
CDialogEx::OnDrawItem(nIDCtl, lpDrawItemStruct);
}

6. android_studio手機藍牙串口通信源代碼

初涉android的藍牙操作,按照固定MAC地址連接獲取Device時,程序始終是異常終止,查了好多天代碼都沒查出原因。今天改了一下API版本,突然就成功連接了。總結之後發現果然是個坑爹之極的錯誤。

為了這種錯誤拚命查原因浪費大把時間是非常不值得的,但是問題不解決更是揪心。可惜我網路了那麼多,都沒有給出確切原因。今天特此mark,希望後來者遇到這個問題的時候能輕松解決。

下面是我的連接過程,中間崩潰原因及解決辦法。

1:用AT指令獲得藍牙串口的MAC地址,地址是簡寫的,按照常理猜測可得標准格式。

2:開一個String adress= "************" //MAC地址, String MY_UUID= "************"//UUID根據通信而定,網上都有。

3:取得本地Adapter用getDefaultAdapter(); 遠程的則用getRemoteDevice(adress); 之後便可用UUID開socket進行通信。

如果中途各種在getRemoteDevice處崩潰,大家可以查看一下當前的API版本,如果是2.1或以下版本的話,便能確定是API版本問題,只要換成2.2或者以上就都可以正常運行了~ 這么坑爹的錯誤的確很為難初學者。 唉·········· 為這種小trick浪費很多時間真是難過。

(另外有個重要地方,別忘了給manifest裡面加以下兩個藍牙操作許可權哦~)

  • <uses-permissionandroid:name="android.permission.BLUETOOTH"></uses-permission>

  • <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>

  • 下面附上Android藍牙操作中用固定MAC地址傳輸信息的模板,通用搜索模式日後再補刪模板:

  • =null;

  • =null;

  • privateOutputStreamoutStream=null;

  • privateInputStreaminStream=null;

  • privatestaticfinalUUIDMY_UUID=UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");//這條是藍牙串口通用的UUID,不要更改

  • privatestaticStringaddress="00:12:02:22:06:61";//<==要連接的藍牙設備MAC地址

  • /*獲得通信線路過程*/

  • /*1:獲取本地BlueToothAdapter*/

  • mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();

  • if(mBluetoothAdapter==null)

  • {

  • Toast.makeText(this,"Bluetoothisnotavailable.",Toast.LENGTH_LONG).show();

  • finish();

  • return;

  • }

  • if(!mBluetoothAdapter.isEnabled())

  • {

  • Toast.makeText(this,"-runthisprogram.",Toast.LENGTH_LONG).show();

  • finish();

  • return;

  • }

  • /*2:獲取遠程BlueToothDevice*/

  • BluetoothDevicedevice=mBluetoothAdapter.getRemoteDevice(address);

  • if(mBluetoothAdapter==null)

  • {

  • Toast.makeText(this,"Can'tgetremotedevice.",Toast.LENGTH_LONG).show();

  • finish();

  • return;

  • }

  • /*3:獲得Socket*/

  • try{

  • btSocket=device.(MY_UUID);

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:Socketcreationfailed.",e);

  • }

  • /*4:取消discovered節省資源*/

  • mBluetoothAdapter.cancelDiscovery();

  • /*5:連接*/

  • try{

  • btSocket.connect();

  • Log.e(TAG,"ONRESUME:BTconnectionestablished,datatransferlinkopen.");

  • }catch(IOExceptione){

  • try{

  • btSocket.close();

  • }catch(IOExceptione2){

  • Log.e(TAG,"ONRESUME:",e2);

  • }

  • }

  • /*此時可以通信了,放在任意函數中*/

  • /*try{

  • outStream=btSocket.getOutputStream();

  • inStream=btSocket.getInputStream();//可在TextView里顯示

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:Outputstreamcreationfailed.",e);

  • }

  • Stringmessage="1";

  • byte[]msgBuffer=message.getBytes();

  • try{

  • outStream.write(msgBuffer);

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:Exceptionringwrite.",e);

  • }

  • */

  • 通用搜索模式代碼模板:

    簡潔簡潔方式1 demo


    作用: 用VerticalSeekBar控制一個 LED屏幕的亮暗。

    直接上碼咯~

  • packagecom.example.seed2;

  • importandroid.app.Activity;

  • importandroid.app.AlertDialog;

  • importandroid.app.Dialog;

  • importandroid.os.Bundle;

  • importjava.io.IOException;

  • importjava.io.InputStream;

  • importjava.io.OutputStream;

  • importjava.util.UUID;

  • importandroid.bluetooth.BluetoothAdapter;

  • importandroid.bluetooth.BluetoothDevice;

  • importandroid.bluetooth.BluetoothSocket;

  • importandroid.content.DialogInterface;

  • importandroid.util.Log;

  • importandroid.view.KeyEvent;

  • importandroid.widget.Toast;

  • {

  • privatestaticfinalStringTAG="BluetoothTest";

  • =null;

  • =null;

  • privateOutputStreamoutStream=null;

  • privateInputStreaminStream=null;

  • privateVerticalSeekBarvskb=null;

  • privatestaticfinalUUIDMY_UUID=UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");//這條是藍牙串口通用的UUID,不要更改

  • privatestaticStringaddress="00:12:02:22:06:61";//<==要連接的藍牙設備MAC地址

  • /**.*/

  • @Override

  • publicvoidonCreate(BundlesavedInstanceState){

  • super.onCreate(savedInstanceState);

  • setContentView(R.layout.main);

  • this.vskb=(VerticalSeekBar)super.findViewById(R.id.mskb);

  • this.vskb.setOnSeekBarChangeListener(newOnSeekBarChangeListenerX());

  • mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();

  • if(mBluetoothAdapter==null)

  • {

  • Toast.makeText(this,"Bluetoothisnotavailable.",Toast.LENGTH_LONG).show();

  • finish();

  • return;

  • }

  • if(!mBluetoothAdapter.isEnabled())

  • {

  • Toast.makeText(this,"-runthisprogram.",Toast.LENGTH_LONG).show();

  • finish();

  • return;

  • }

  • }

  • .OnSeekBarChangeListener{

  • publicvoidonProgressChanged(VerticalSeekBarseekBar,intprogress,booleanfromUser){

  • //Main.this.clue.setText(seekBar.getProgress());

  • /*Stringmessage;

  • byte[]msgBuffer;

  • try{

  • outStream=btSocket.getOutputStream();

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:OutputStreamcreationfailed.",e);

  • }

  • message=Integer.toString(seekBar.getProgress());

  • msgBuffer=message.getBytes();

  • try{

  • outStream.write(msgBuffer);

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:Exceptionringwrite.",e);

  • }*/

  • }

  • (VerticalSeekBarseekBar){

  • Stringmessage;

  • byte[]msgBuffer;

  • try{

  • outStream=btSocket.getOutputStream();

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:OutputStreamcreationfailed.",e);

  • }

  • message=Integer.toString(seekBar.getProgress());

  • msgBuffer=message.getBytes();

  • try{

  • outStream.write(msgBuffer);

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:Exceptionringwrite.",e);

  • }

  • }

  • publicvoidonStopTrackingTouch(VerticalSeekBarseekBar){

  • Stringmessage;

  • byte[]msgBuffer;

  • try{

  • outStream=btSocket.getOutputStream();

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:OutputStreamcreationfailed.",e);

  • }

  • message=Integer.toString(seekBar.getProgress());

  • msgBuffer=message.getBytes();

  • try{

  • outStream.write(msgBuffer);

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:Exceptionringwrite.",e);

  • }

  • }

  • }

  • @Override

  • publicvoidonStart()

  • {

  • super.onStart();

  • }

  • @Override

  • publicvoidonResume()

  • {

  • super.onResume();

  • BluetoothDevicedevice=mBluetoothAdapter.getRemoteDevice(address);

  • try{

  • btSocket=device.(MY_UUID);

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:Socketcreationfailed.",e);

  • }

  • mBluetoothAdapter.cancelDiscovery();

  • try{

  • btSocket.connect();

  • Log.e(TAG,"ONRESUME:BTconnectionestablished,datatransferlinkopen.");

  • }catch(IOExceptione){

  • try{

  • btSocket.close();

  • }catch(IOExceptione2){

  • Log.e(TAG,"ONRESUME:",e2);

  • }

  • }

  • //.

  • /*try{

  • outStream=btSocket.getOutputStream();

  • inStream=btSocket.getInputStream();

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:Outputstreamcreationfailed.",e);

  • }

  • Stringmessage="read";

  • byte[]msgBuffer=message.getBytes();

  • try{

  • outStream.write(msgBuffer);

  • }catch(IOExceptione){

  • Log.e(TAG,"ONRESUME:Exceptionringwrite.",e);

  • }

  • intret=-1;

  • while(ret!=-1)

  • {

  • try{

  • ret=inStream.read();

  • }catch(IOExceptione)

  • {

  • e.printStackTrace();

  • }

  • }

  • */

  • }

  • @Override

7. 誰有用C#寫的串口通信程序的源代碼,就像串口調試助手那種軟體,可以實現單片機與PC間的通信的感激不盡

這個是我以前仿照串口調試精靈做的一個串口通訊軟體你看看是不是你想要的效果,想要的話我就把源碼發給你(源碼可能寫的有點亂,那時候剛接觸c#和串口通訊)

熱點內容
cocos2d30編譯 發布:2024-10-25 17:20:51 瀏覽:993
app直播平台源碼 發布:2024-10-25 17:19:57 瀏覽:223
asp文件上傳帶進度條 發布:2024-10-25 17:19:54 瀏覽:656
mp4反編譯軟體 發布:2024-10-25 16:47:33 瀏覽:998
哪個是提升電腦幀數的配置 發布:2024-10-25 16:43:45 瀏覽:95
以一種訪問許可權不允許的方式 發布:2024-10-25 16:38:32 瀏覽:404
嵌入式linux開發環境搭建 發布:2024-10-25 16:26:51 瀏覽:325
奧迪a4l乞丐版什麼配置 發布:2024-10-25 16:20:33 瀏覽:411
python讀取txt文件數據 發布:2024-10-25 16:07:36 瀏覽:23
獲取區域網伺服器的真實ip 發布:2024-10-25 16:01:36 瀏覽:28