tft每日頭條

 > 科技

 > 簡述怎麼用vc調試程序

簡述怎麼用vc調試程序

科技 更新时间:2024-07-21 21:22:24

簡述怎麼用vc調試程序(VC之上位機編程)1

先簡單介紹一下何為上下位機,在實際應用中,有時需要單片機采集數據并通過串口将數據傳遞至個人電腦,再由個人電腦收集數據,并對數據進行,分析處理,再通過串口将要操作的指令發送出去,單片機接收到後執行相對應的操作。

本節介紹全雙工通信,類似于所講的套接字編程,但由于單片機上沒有windows系統,因此需要通過串口通信。上位機和下位機分别類似于網絡編程的服務端和客戶端,兩者沒有固定區分,并在一定情況下可以相互轉化,也就是說單片機同樣可以通過串口通信給個人電腦發送指令讓其執行相應操作。

單片機作為下位機,對應的寄存器和編程内容不在此介紹,着重介紹個人電腦的上位機編程。

主要還是借助mfc的Active控件——Mscomm控件

簡述怎麼用vc調試程序(VC之上位機編程)2

,我們新建一個對話框,

簡述怎麼用vc調試程序(VC之上位機編程)3

然後右擊添加Active控件,

選擇

簡述怎麼用vc調試程序(VC之上位機編程)4

,點擊完成,随後打開類向導

簡述怎麼用vc調試程序(VC之上位機編程)5

為該控件定義一個CMscomm1類型的控制變量,随後都通過這個變量對控件進行操控。

接着介紹下該控件類主要的成員函數:

put_commPort(ComPort);//設置端口号,由于筆者采用電腦的com3口通信,所以這裡設為3;

put_SThreshold(Sthreshold);若設置 Sthreshold 屬性為 0(缺省值),數據傳輸事件不會産生 OnComm 事件。若設置 Sthreshold 屬性為 1,當傳輸緩沖區完全空時,MSComm 控件産生 OnComm 事件,這裡設為1;

put_RThreshold(Rthreshold);//當接收字符後,若 Rthreshold 屬性設置為 0(缺省值)則不産生 OnComm 事件。這裡設置 Rthreshold 為 1,接收緩沖區收到每一個字符都會使 MSComm 控件産生 OnComm 事件。

put_InputMode(1) //0(缺省)通過 Input 屬性以文本方式取回數據,而這裡設為1表示以二進制方式取回數據;

put_Settings("BBBB,P,D,S ")//BBBB 為波特率,P為奇偶校驗,D為數據位數,S為停止位數。value 的缺省值是:"9600,N,8,1 ";

在設置完基本的屬性值之後還必須得打開端口put_PortOpen(BOOL)函數,若BOOL為TRUE,則打開端口,若為FALSE,則關閉端口;

在打開端口後我們可以通過以下語句提醒端口狀态

簡述怎麼用vc調試程序(VC之上位機編程)6

若成功打開則出現以下對話框;

簡述怎麼用vc調試程序(VC之上位機編程)7

在初次進行上位機編程的時候不可避免地會出現很多苦難,一開始,筆者對屬性如下設置

簡述怎麼用vc調試程序(VC之上位機編程)8

結果發現跳出對話框

簡述怎麼用vc調試程序(VC之上位機編程)9

說明端口已被占用,後來用串口調試助手調至com3端口才成功,于是筆者又對屬性索性全改成3結果發現,無論如何端口都不曾打開

簡述怎麼用vc調試程序(VC之上位機編程)10

回頭再看通過斷點一步步調試才發現隻有端口值才需為3。emmmm,說明心急是要不得的。果然當屬性設置正确後,程序理想化運行,配合下位機實驗,發出的值成功返回,程序調通。

簡述怎麼用vc調試程序(VC之上位機編程)11

程序調通隻是一小步,确意味着可以通過這個模塊,寫對應的程序,通過電腦控制單片機的每一個模塊,也可以編寫屬于自己的串口調試小助手。光明的未來似乎觸手可摸……

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved