freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

串口通信c課程設(shè)計(jì)--基于串口通信的高級(jí)語(yǔ)言控制程序的設(shè)計(jì)-其他專業(yè)(編輯修改稿)

2025-02-24 00:20 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ★ 制定 串口通信控制程序 的總體構(gòu)架 ; ★熟悉 VC 平臺(tái)下的高級(jí)語(yǔ)言編程方法; 2 ★熟悉基于 RS232 串口通 信 的高級(jí)語(yǔ)言編程方法 ; ★ 在同一臺(tái) PC 機(jī)上調(diào)試通過(guò)所編寫的程序; 分析 目前 Win32 中基于 VC + + 6. 0 的常用串口通信程序一般可以用兩種方法實(shí)現(xiàn) : ①利用 MSComm ActiveX 串行通信控件 。 ②使用 Win2dows API 通信函數(shù)。 雖然在 Windows下 Win32API 提供了使用文件操作方式的函數(shù)進(jìn)行串口 操作的方法,但是在編程實(shí)現(xiàn)上還是比較復(fù)雜。 Windows 平臺(tái)先進(jìn)的 ActiveX 技術(shù)使得對(duì)串口編程不再需要處理煩瑣的細(xì)節(jié)。利用已有的 AxtiveX 控件,只需要編寫少量的代碼,就可以輕松高效地完成任務(wù)。因此程序員不需要花時(shí)間去了解復(fù)雜的 API 函數(shù),只需要利用 MSComm 控件就可實(shí)現(xiàn)串口編程。 2 程序的主要功能 參數(shù)設(shè)置功能 設(shè)置和修改串口通信參數(shù),包括端口,波特率,奇偶校驗(yàn)位,數(shù)據(jù)位,停止位。 參數(shù)顯示功能 顯示 當(dāng)前 串口通信參數(shù) ,包括端口號(hào),波特率,奇偶校驗(yàn)位,數(shù)據(jù)位,停止位 。 打開(kāi)串口功 能 參數(shù) 設(shè)置 后,才能打開(kāi)串口,實(shí)現(xiàn)通信。 關(guān)閉串口功能 關(guān)閉串口,停止通信 。 接收數(shù)據(jù)功能 能夠進(jìn)行 單個(gè)或多個(gè)數(shù)據(jù)的接收 和顯示 。 發(fā)送數(shù)據(jù)功能 能夠進(jìn)行單個(gè)或多個(gè)數(shù)據(jù)的發(fā)送 。 清空數(shù)據(jù)接收區(qū)功能 刪除接收區(qū)所有數(shù)據(jù) 。 3 清空數(shù)據(jù)發(fā)送區(qū)功能 清除發(fā)送區(qū)內(nèi)所有數(shù)據(jù) 。 自動(dòng)發(fā)送功能 能把發(fā)送區(qū)內(nèi)的數(shù)據(jù)每 2s 自動(dòng)發(fā)送。 十六進(jìn)制顯示功能 在接收區(qū)只顯示十六進(jìn)制數(shù),每?jī)蓚€(gè)字符 一個(gè)空格。 十六進(jìn)制發(fā)送功能 只能發(fā)送十六進(jìn)制數(shù),不能發(fā)送非十六進(jìn)制數(shù)。 3 程序運(yùn)行平臺(tái) Visual studio 2021 具體操作如下 : ( 1) 新建 MSComm 項(xiàng)目,選擇 MFC 應(yīng)用程序,應(yīng)用程序類型選擇“基于對(duì)話框”,生成的類中選擇“ CMSCommDlg” ; ( 2)為 MSComm 項(xiàng)目添加新建一個(gè) Dialog 設(shè)置對(duì)話框; ( 3)加載 MSComm 控件,添加相應(yīng)的源程序,加載必要的控件; ( 4)編寫程序代碼,再編譯,鏈接,調(diào)試,執(zhí)行等,生成應(yīng)用程序。 4 4 總體設(shè)計(jì) 圖 系統(tǒng)總體框架圖 5 程序類的說(shuō)明 class CMSCommDlg : public CDialog { // 構(gòu)造 public: CMSCommDlg(CWnd* pParent = NULL)。 // 標(biāo)準(zhǔn)構(gòu)造函數(shù) // 對(duì)話框數(shù)據(jù) int OnCreate(LPCREATESTRUCT lpCreateStruct)。 int String2Hex(CString str, CByteArray amp。senddata)。 char ConvertHexChar(char ch)。 enum { IDD = IDD_MSCOMM_DIALOG }。 protected: 主 函 數(shù) 參數(shù)設(shè)置和顯示 打開(kāi)和關(guān)閉串口 發(fā)送數(shù)據(jù) 接收數(shù)據(jù) 清空接收區(qū) 清空發(fā)送區(qū) 5 virtual void DoDataExchange(CDataExchange* pDX)。 // DDX/DDV 支持 // 實(shí)現(xiàn) protected: HICON m_hIcon。 // 生成的消息映射函數(shù) virtual BOOL OnInitDialog()。 afx_msg void OnSysCommand(UINT nID, LPARAM lParam)。 afx_msg void OnPaint()。 afx_msg HCURSOR OnQueryDragIcon()。 DECLARE_MESSAGE_MAP() public: CMSComm m_ms。 //聲明 m_msm變量為 CMSComm類型 CString m_recv。 //接收區(qū) CString m_send。 //發(fā)送區(qū) CSetupDlg mySetupDlg。 //聲明設(shè)置對(duì)話框 BYTE myCom。 //串口號(hào)碼 CString myParity。 //奇偶校驗(yàn)類型 CString myBaudRate。 //通信波特率 CString myData。 //數(shù)據(jù)位 CString myStop。 //停止位 DECLARE_EVENTSINK_MAP() void OnCommMsm1()。 afx_msg void OnBnClickedSendbutton()。 afx_msg void OnBnClickedClearsend()。 afx_msg void OnBnClickedClearRecv()。 afx_msg void OnBnClickedSetup()。 afx_msg void OnBnClickedOpen()。 afx_msg void OnBnClickedClose()。 afx_msg void OnTimer(UINT_PTR nIDEvent)。 6 afx_msg void OnBnClickedCheckAutosend()。 CButton m_Open。 //打開(kāi)串口按鈕 CButton m_Close。 //關(guān)閉串口按鈕 CButton m_Setup。 //設(shè)置按鈕 CString m_Para。 //通信參數(shù)顯示 CButton m_ClearRecv。 //清空接收按鈕 CButton m_ClearSend。 //清空發(fā)送按鈕 CButton m_SendText。 //發(fā)送按鈕 CButton m_ctrlHexSend。 //十六進(jìn)制發(fā)送 CButton m_ctrlHexDisplay。 //十六進(jìn)制顯示 BOOL m_bAutoSend。 //自動(dòng)發(fā)送 }。 6 模塊分析 和 顯示 模塊 單擊主界面中的 【 設(shè)置 】 按鈕,將彈出“設(shè)置”對(duì)話框,如圖 所示,可以在該對(duì)話框中設(shè)置串口的通信參數(shù)。該命令的代碼如下: void CMSCommDlg::OnBnClickedSetup()
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1