本文採用vs2013+mfc,使用mscomm進行串列埠通訊
首先註冊mscomm外掛程式,
新增activex控制項——microsoft communications control,version 6.0,右鍵控制項新增變數,並將主程式中ddx_control(pdx, idc_mscomm, m_mscomm)這行刪除掉。
開啟串列埠
if (m_mscomm.get_portopen())
m_mscomm.put_portopen(false); //關閉串列埠
cbutton* pbtnopencomm = (cbutton*)getdlgitem(idc_button_opencomm);
ccombobox* pcomboboxcomm = (ccombobox*)getdlgitem(idc_combo_comm);
int nselcomm = pcomboboxcomm->getcursel();
m_mscomm.put_commport(nselcomm + 1); //設定串列埠為com4
m_mscomm.put_settings(_t("115200,n,8,1")); //設定波特率115200,無奇偶校驗,8位資料位,1位停止位
m_mscomm.put_inputmode(1); //設定資料接收模式,1為二進位制,0為文字
m_mscomm.put_inputlen(0); //設定當前接收區資料長度,0表示全部讀取
m_mscomm.put_inbuffersize(1024); //設定輸入緩衝區大小為1024 byte
m_mscomm.put_outbuffersize(1024); //設定輸出緩衝區大小為1024 byte
m_mscomm.put_rthreshold(8); //每接收到1個字元時,觸發oncomm事件
m_mscomm.put_sthreshold(0); //設定每傳送多少個字元觸發oncomm事件,0表示不觸發oncomm事件
if (!m_mscomm.get_portopen())
else
afxmessagebox(_t("can't open serial port"));
初始化串列埠
ccombobox* pcombocomm = (ccombobox*)getdlgitem(idc_combo_comm);
assert(pcombocomm);
//初始化串列埠視窗
for (int i = 1; i <= 10; i++)
pcombocomm->setcursel(2); //設定預設串列埠4
有可能初始化後在combo-box裡顯示亂序,這時候需要設定sort為false。
傳送資料
unsigned char txdata[13] = ;
unsigned short int unintcrc = getcrc16(txdata, 11);
unsigned char* punintcrc = (unsigned char*)&unintcrc;
txdata[11] = punintcrc[1];
txdata[12] = punintcrc[0];
unsigned char* ptxdata = (unsigned char*)&txdata;
cbytearray array;
array.removeall();
array.setsize(13);
for (int a = 0; a < 13; a++)
m_mscomm.put_output(colevariant(array));
txdata[13]為假定的一段資料
接收資料
//afxmessagebox("t1");
if (m_mscomm.get_commevent() != 2)
cstring strrecv = _t("");
unsigned char rcvdata[1024] = ;//接收的資料
colesafearray safearray_inp = m_mscomm.get_input();//讀緩衝區訊息
dword len = safearray_inp.getonedimsize();//獲取有效資料長度
for (long j = 0; j < len; j++)//轉化為unsigned char陣列
for (long j = 0; j < len; j++)//將陣列轉換為cstring型變數
資料儲存在m_edittemp裡; 串列埠與socket通訊
到資訊。對於那種需要很長時間才能完成的操作來說,重疊i o機制尤其有用,因為發起 重疊操作的執行緒在重疊請求發出後就可以自由地做別的事情了。在windows nt 2000上,提供真正可擴充套件的i o模型就是使用完成埠 completion port 的重疊i o。可以把完成埠看成系統維護的乙個佇...
串列埠與socket通訊
2.完成埠建立成功後,在socket和完成埠之間建立關聯。再次呼叫createiocompletionport 函式,這一次在第1個引數filehandle傳入建立的socket控制代碼,引數existingcompletionport 為已經建立的完成埠控制代碼。以下 建立了乙個socket並把它...
藍芽模組配置串列埠通訊
無線串列埠通訊肯定需要兩個藍芽模組,微控制器傳送資料給電腦,連電腦的就需要 usb ttl 模組,藍芽模組與 usb ttl 連線就是 5v 連 5v,gnd 接 gnd rxd 接 txd,txd 接 rxd。配置藍芽模組時需要進入它的 at 模式,就是配置模式。進入at模式的方法 按住藍芽模組上...