女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)WinCE主板與STM32多功能模塊通訊介紹

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-06 11:12 ? 次閱讀

ETA321是英創(chuàng)推出的基于STM32單片機(jī)的多功能擴(kuò)展模塊,可為英創(chuàng)現(xiàn)有的WinCE系統(tǒng)增加AD、DA、PWM、脈沖計(jì)數(shù)等功能。ETA321使用了一片STM32F103RCT6單片機(jī),STM32F103RCT6通過(guò)其USB Device接口與英創(chuàng)工控主板連接通訊,STM32在WinCE系統(tǒng)中被當(dāng)做一個(gè)串口設(shè)備,英創(chuàng)主板作為上位機(jī)已經(jīng)固化了STM32的USB驅(qū)動(dòng)程序,同時(shí)我們封裝了一組STM32與英創(chuàng)WinCE系統(tǒng)通訊的API接口函數(shù),客戶可以利用我們提供的接口函數(shù),把成熟的實(shí)時(shí)控制算法移植到ETA321上,快速實(shí)現(xiàn)與英創(chuàng)主板的數(shù)據(jù)通訊。在使用這些API函數(shù)時(shí),需要遵從以下約定:

1、通訊以數(shù)據(jù)包(結(jié)構(gòu)體)作為基本單元,每次通訊收/發(fā)一個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包最大為255字節(jié),數(shù)據(jù)包第一個(gè)字節(jié)為本數(shù)據(jù)包的字節(jié)長(zhǎng)度,第二個(gè)字節(jié)為命令碼,數(shù)據(jù)包的其它內(nèi)容由用戶自定義。

2、數(shù)據(jù)包的第二個(gè)命令碼字節(jié)用于表明本數(shù)據(jù)包的“身份”。當(dāng)STM32接收到數(shù)據(jù)包,得到命令碼后,會(huì)根據(jù)命令碼執(zhí)行相應(yīng)的操作,當(dāng)上位機(jī)接收到數(shù)據(jù)包后,根據(jù)命令碼就可以知道接收到了什么數(shù)據(jù)。0~127命令碼表示常規(guī)命令和數(shù)據(jù),128~255表示實(shí)時(shí)數(shù)據(jù)或?qū)崟r(shí)命令。

3、數(shù)據(jù)包和命令碼的定義在WinCE上位機(jī)端和STM32端必須完全一致。STM32必須對(duì)接收到的每個(gè)命令數(shù)據(jù)包回復(fù)一個(gè)相同命令碼的應(yīng)答包,如果沒(méi)有數(shù)據(jù)需要回復(fù),可簡(jiǎn)單回復(fù)通用應(yīng)答數(shù)據(jù)包。

下面是命令碼和數(shù)據(jù)包定義示例:

/************************* 定義命令代碼*************************/

#define MCU_GENERIC_VER_INFO 0

#define MCU_GENERIC_ADC 1

// STM32返回的實(shí)時(shí)數(shù)據(jù)命令碼

#define MCU_REALTIME_ADC (0 + MCU_REALTIME_DATA)

/*********************** 定義數(shù)據(jù)包(結(jié)構(gòu)體) **********************/

// 獲取單片機(jī)固件版本信息

typedef struct

{

BYTE ucSize; // size of the structure < 256

BYTE ucCmd; // = MCU_GENERIC_VER_INFO

WORD wMajor; // major version number

WORD wMinor; // minor version number

char ucName[24]; // name of realtime driver

} MCU_VER_INFO, *PMCU_VER_INFO; // struct for Version Info

// ADC命令

typedef struct

{

BYTE ucSize; // size of the structure < 256

BYTE ucCmd; // = MCU_GENERIC_ADC

BYTE ucCH; // AD通道

DWORD dwSamplingRate; // 采樣率

} MCU_ADC, *PMCU_ADC; // struct for Version Info

// STM32通用應(yīng)答數(shù)據(jù)包

typedef struct

{

BYTE ucSize; // size of the structure < 256

BYTE ucCmd; //

BYTE ucRerult;

}MCU_GENERIC_REPLY, *PMCU_GENERIC_REPLY;

WinCE上位機(jī)API函數(shù)

在WinCE上使用我們提供的API函數(shù)時(shí),需要在工程中包含以下3個(gè)文件

#include "mcu_class.h" // API接口函數(shù)定義

#include "mcuCmdInfo.h" // 命令碼和數(shù)據(jù)包定義

#pragma comment(lib, "mcu_class.lib") // 包含庫(kù)文件

下面是API函數(shù)說(shuō)明:

/**

@brief 打開(kāi)MCU設(shè)備,初始化相關(guān)環(huán)境

@param None

@retval = 返回true 打開(kāi)成功

**/

BOOL OpenMCU();

/**

@brief 給STM32發(fā)送控制指令

@param *pCmdInfo[in]:符合約定數(shù)據(jù)結(jié)構(gòu)的命令數(shù)據(jù)

@param *pBuf[out]: 接收STM32返回?cái)?shù)據(jù)的數(shù)據(jù)緩存,此參數(shù)可為NULL

@param dwBufSize[in]:數(shù)據(jù)緩存大小

@retval = true 發(fā)送成功,返回true僅表示數(shù)據(jù)通訊成功,命令執(zhí)行情況可查看pBuf返回的數(shù)據(jù)

**/

BOOL SendCmd(BYTE *pCmdInfo, BYTE *pBuf, DWORD dwBufSize = 0);

/**

@brief 關(guān)閉MCU,釋放相關(guān)資源

@param None

@retval = true 關(guān)閉成功

**/

BOOL CloseMCU();

/**

@brief 接收STM32實(shí)時(shí)回傳數(shù)據(jù)的回調(diào)函數(shù)指針,當(dāng)接收到128~255命令碼時(shí)被調(diào)用

**/

REPLYPRO MCUReplyPro;

STM32單片機(jī)API函數(shù)

在編寫STM32程序時(shí),同樣應(yīng)該包含和上位機(jī)定義一致的"mcuCmdInfo.h"文件。STM32使用API函數(shù)定義如下:

/**

* @brief USBD初始化及CDC類初始化

* @param None

* @retval None

**/

void USBCDC_Init(void);

/**

* @brief 查檢是否有上位機(jī)發(fā)來(lái)的命令

* @param pBuf:用于接收命令的數(shù)據(jù)緩存

* @param pBuf:用于接收命令的數(shù)據(jù)緩存大小

* @retval =0:未接收到命令 >0:接收到數(shù)據(jù)包的長(zhǎng)度(字節(jié)數(shù))

**/

uint8_t CheckCommand(uint8_t *pBuf, uint32_t nBufSize);

/**

* @brief 向上位機(jī)發(fā)送數(shù)據(jù)

* @param 要發(fā)送的數(shù)據(jù)緩存

* @param 要發(fā)送的數(shù)據(jù)字節(jié)數(shù)

* @retval 返回發(fā)送字節(jié)數(shù)

**/

uint8_t SendData(uint8_t *pBuf, uint32_t nSendBytes);

STM32應(yīng)用程序首先需要調(diào)用USBCDC_Init初始化USB接口,然后調(diào)用CheckCommand函數(shù)檢查是否接收到上位機(jī)發(fā)來(lái)的命令,再根據(jù)命令碼執(zhí)行相應(yīng)的操作,調(diào)用SendData函數(shù)發(fā)送應(yīng)答數(shù)據(jù)或?qū)崟r(shí)數(shù)據(jù)。

下面是WinCE系統(tǒng)中實(shí)現(xiàn)讀取ETA321版本信息和實(shí)時(shí)波形數(shù)據(jù)采樣的示例程序:

#include "stdafx.h"

#include "mcu_class.h" // API接口函數(shù)定義

#include "mcuCmdInfo.h" // 命令碼和數(shù)據(jù)包定義

#pragma comment(lib, "mcu_class.lib") // 包含庫(kù)文件

// 聲明實(shí)時(shí)數(shù)據(jù)處理回調(diào)函數(shù)

static void CALLBACK MCUReplyPro(BYTE *buf, DWORD buflen);

int _tmain(int argc, _TCHAR* argv[])

{

MCU_CLASS mcu;

BYTE Buf[MAX_BUF_SIZE];

TCHAR csBuf[MAX_BUF_SIZE];

DWORD dwSize, dwCnt = 0;

MCU_VER_INFO getVerInfo;

MCU_ADC adc;

size_t RetrunSize;

// 打開(kāi)MCU設(shè)備

if(!mcu.OpenMCU()) {

return -1;

}

// 指定MCU實(shí)時(shí)數(shù)據(jù)處理回調(diào)函數(shù)

mcu.MCUReplyPro = MCUReplyPro;

// 調(diào)用SenCmd函數(shù)之前必須初始化的個(gè)變量

getVerInfo.ucSize = sizeof(MCU_VER_INFO); // 發(fā)送的命令結(jié)構(gòu)體大小(字節(jié)數(shù))

getVerInfo.ucCmd = MCU_GENERIC_VER_INFO; // 命令代碼:獲取MCU版本信息

dwSize = sizeof(Buf); // 用于接收MCU數(shù)據(jù)的緩存大小

if(mcu.SendCmd((BYTE *)(&getVerInfo), (BYTE *)&getVerInfo, dwSize)) {

// 窄字符轉(zhuǎn)寬字符

mbstowcs_s(&RetrunSize, csBuf, _countof(csBuf), getVerInfo.ucName, _TRUNCATE);

OutputMessage(TEXT("mcu-ver %x-%x '%s'\r\n"), getVerInfo.wMajor,getVerInfo.wMinor,csBuf);

}

else {

OutputMessage(TEXT("send command:%d failed!!!\r\n"), getVerInfo.ucCmd);

}

// 調(diào)用SenCmd函數(shù)之前必須初始化的變量

adc.ucSize = sizeof(MCU_ADC); // 發(fā)送的命令結(jié)構(gòu)體大小(字節(jié)數(shù))

adc.ucCmd = MCU_GENERIC_ADC; // 命令代碼:獲取MCU版本信息

adc.ucCH = 0; // 設(shè)備ADC通道

adc.dwSamplingRate = 10000; // 設(shè)置ADC采樣率KHz

if(!mcu.SendCmd((BYTE *)(&adc), NULL)) {

OutputMessage(TEXT("send command:%d failed!!!\r\n"), adc.ucCmd);

}

while(1) {

Sleep(1000);

if(dwCnt > 10) // 10S后退出

break;

}

adc.dwSamplingRate = 0; // 停止ADC采集

if(!mcu.SendCmd((BYTE *)(&adc), NULL)) {

OutputMessage(TEXT("send command:%d failed!!!\r\n"), adc.ucCmd);

}

Sleep(1000);

// 關(guān)閉MCU設(shè)備,釋放相關(guān)資源

mcu.CloseMCU();

return 0;

}

// 實(shí)時(shí)數(shù)據(jù)處理回調(diào)函數(shù)

void CALLBACK MCUReplyPro(BYTE *buf, DWORD buflen)

{

PMCU_ADC_DATA pADCData;

static DWORD cnt = 0;

pADCData = (PMCU_ADC_DATA)buf;

cnt += pADCData->ucSize;

// 處理實(shí)時(shí)數(shù)據(jù)......

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6096

    瀏覽量

    36124
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    創(chuàng)浪潮下,國(guó)產(chǎn)主板有什么新的發(fā)展機(jī)遇?

    信息技術(shù)應(yīng)用創(chuàng)新浪潮的推動(dòng)下,國(guó)產(chǎn)主板迎來(lái)了諸多新的發(fā)展機(jī)遇。信創(chuàng)產(chǎn)業(yè)旨在實(shí)現(xiàn)信息技術(shù)領(lǐng)域的自主可控,這一戰(zhàn)略目標(biāo)為國(guó)產(chǎn)主板的發(fā)展提供了廣
    的頭像 發(fā)表于 05-09 09:24 ?87次閱讀
    信<b class='flag-5'>創(chuàng)</b>浪潮下,國(guó)產(chǎn)<b class='flag-5'>主板</b>有什么新的發(fā)展機(jī)遇?

    比斯特電池組綜合性能測(cè)試機(jī):關(guān)鍵功能模塊剖析

    在電池技術(shù)飛速發(fā)展的現(xiàn)在,確保電池組的質(zhì)量與安全是重中之重。比斯特電池組綜合性能測(cè)試機(jī)作為一款專為電池組打造的高性能測(cè)試設(shè)備,在其中扮演著不可或缺的角色。它通過(guò)一系列精心設(shè)計(jì)的關(guān)鍵功能模塊,多方位、精確地對(duì)電池組進(jìn)行測(cè)試。下面我們就來(lái)深入了解這些關(guān)鍵
    的頭像 發(fā)表于 04-24 10:45 ?111次閱讀
    比斯特電池組綜合性能測(cè)試機(jī):關(guān)鍵<b class='flag-5'>功能模塊</b>剖析

    芯盛智能榮獲2024年信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)卓越貢獻(xiàn)成員單位

    日前,中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)(以下簡(jiǎn)稱 “信創(chuàng)工委會(huì)”)2024 年度總結(jié)座談會(huì)于北京隆重舉行。此次會(huì)議對(duì)在信創(chuàng)工作中作出突出貢獻(xiàn)的成員單位予以表彰。江蘇
    的頭像 發(fā)表于 01-20 09:56 ?488次閱讀

    多功能智慧路燈系統(tǒng)整體解決方案介紹

    多功能智慧路燈系統(tǒng)整體解決方案介紹
    的頭像 發(fā)表于 01-15 09:12 ?470次閱讀
    <b class='flag-5'>多功能</b>智慧路燈系統(tǒng)整體解決方案<b class='flag-5'>介紹</b>

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信創(chuàng)工委會(huì)支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?431次閱讀

    有方科技參編的信息技術(shù)團(tuán)體標(biāo)準(zhǔn)發(fā)布

    近日,有方科技參編的《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第1部分:企業(yè)背景評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第2部分:技術(shù)掌控評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第
    的頭像 發(fā)表于 12-23 10:44 ?506次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信
    的頭像 發(fā)表于 12-19 17:02 ?483次閱讀

    光伏電站無(wú)人機(jī)智能巡檢系統(tǒng)各功能模塊

    光伏電站無(wú)人機(jī)智能巡檢系統(tǒng)各功能模塊 光伏電站無(wú)人機(jī)智能巡檢系統(tǒng)是一個(gè)集成了先進(jìn)技術(shù)的綜合性解決方案,旨在提高光伏電站巡檢的效率和準(zhǔn)確性。該系統(tǒng)主要由以下幾個(gè)功能模塊組成,每個(gè)模塊都發(fā)
    的頭像 發(fā)表于 11-11 16:47 ?648次閱讀
    光伏電站無(wú)人機(jī)智能巡檢系統(tǒng)各<b class='flag-5'>功能模塊</b>

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競(jìng)爭(zhēng)力百?gòu)?qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?816次閱讀

    MES系統(tǒng)的功能模塊詳解

    生產(chǎn)流程,提高生產(chǎn)效率和產(chǎn)品質(zhì)量。以下是MES系統(tǒng)的主要功能模塊介紹: 生產(chǎn)調(diào)度管理 : 功能 :MES系統(tǒng)通過(guò)生產(chǎn)調(diào)度模塊,根據(jù)訂單需求、設(shè)備狀態(tài)、物料供應(yīng)等因素,制定合理的生產(chǎn)計(jì)
    的頭像 發(fā)表于 10-27 09:27 ?1104次閱讀

    FPD link主要功能模塊

    電子發(fā)燒友網(wǎng)站提供《FPD link主要功能模塊.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 11:38 ?0次下載
    FPD link主要<b class='flag-5'>功能模塊</b>

    銳恩科技,以實(shí)力打造國(guó)產(chǎn)單片機(jī)替代品牌!

    設(shè)計(jì):銳恩單片機(jī)產(chǎn)品采用先進(jìn)的低功耗設(shè)計(jì),在保證高性能的同時(shí),有效延長(zhǎng)了設(shè)備的使用時(shí)間和電池壽命。這種設(shè)計(jì)特別適用于對(duì)功耗有嚴(yán)格要求的智能設(shè)備。 2、高度集成化:銳恩單片機(jī)集成了多種功能模塊,如
    發(fā)表于 09-25 09:49

    創(chuàng)國(guó)產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡(jiǎn)稱,于2016年“信創(chuàng)工委會(huì)”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì))提出,目的就是要推動(dòng)我們國(guó)內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?767次閱讀

    SSD架構(gòu)與功能模塊詳解

    在之前的系列文章中,我們介紹了固態(tài)硬盤的系列知識(shí),包括閃存的介質(zhì)、原理,以及作為SSD大腦的控制器設(shè)計(jì),本文將詳細(xì)介紹SSD架構(gòu)以及功能模塊
    的頭像 發(fā)表于 07-27 10:30 ?1873次閱讀
    SSD架構(gòu)與<b class='flag-5'>功能模塊</b>詳解

    BIG WALNUT大核桃全面響應(yīng)國(guó)家“信創(chuàng)”號(hào)召,傾力“智”造國(guó)產(chǎn)芯片+國(guó)產(chǎn)加密安全系統(tǒng)通訊產(chǎn)品

    信息化高速發(fā)展的今天,信息技術(shù)的自主可控和信息安全已經(jīng)成為國(guó)家發(fā)展的重要基石。國(guó)家信創(chuàng)戰(zhàn)略的提出,旨在推動(dòng)國(guó)產(chǎn)信息產(chǎn)業(yè)的崛起,實(shí)現(xiàn)
    的頭像 發(fā)表于 06-18 17:42 ?728次閱讀