在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

使用MM32F3270基于Azure RTOS信號(hào)量的應(yīng)用

靈動(dòng)MM32MCU ? 來(lái)源:靈動(dòng)MM32MCU ? 作者:靈動(dòng)MM32MCU ? 2022-12-16 09:23 ? 次閱讀

簡(jiǎn) 介

Azure RTOS ThreadX 是 Microsoft 提供的高級(jí)工業(yè)級(jí)實(shí)時(shí)操作系統(tǒng) (RTOS)。它是專門為深度嵌入式實(shí)時(shí) IoT 應(yīng)用程序設(shè)計(jì)的。Azure RTOS ThreadX 提供高級(jí)計(jì)劃、通信、同步、計(jì)時(shí)器、內(nèi)存管理和中斷管理功能。此外,Azure RTOS ThreadX 具有許多高級(jí)功能,包括 picokernel 體系結(jié)構(gòu)、preemption-threshold 計(jì)劃、event-chaining、執(zhí)行分析、性能指標(biāo)和系統(tǒng)事件跟蹤。Azure RTOS ThreadX 非常易于使用,適用于要求極其苛刻的嵌入式應(yīng)用程序。Azure RTOS ThreadX 在各種產(chǎn)品(包括消費(fèi)者設(shè)備、醫(yī)療電子設(shè)備和工業(yè)控制設(shè)備)上的部署次數(shù)已達(dá)數(shù)十億次。

具體的介紹和用戶指南可以參考:

https://docs.microsoft.com/zh-cn/azure/rtos/threadx/

在前文描述移植基本內(nèi)核的基礎(chǔ)上,該應(yīng)用手冊(cè)描述了如何基于MM32F3270系列MCU結(jié)合Azure RTOS ThreadX應(yīng)用Counting Semaphores的使用,引導(dǎo)用戶理解Azure RTOS ThreadX信號(hào)量功能。

表 1 適用系列型號(hào)

系列 芯片型號(hào) 開(kāi)發(fā)板
MM32F3270 MM32F3273G9P EVB-F3270

1移植應(yīng)用的準(zhǔn)備

1.1 硬件開(kāi)發(fā)板的準(zhǔn)備

該移植過(guò)程中應(yīng)用的開(kāi)發(fā)板為MM32的EVB-F3270,板載MM32F3273G9P。

75f9efb2-7c69-11ed-8abf-dac502259ad0.png

EVB-F3270 (MM32F3273G9P) 的簡(jiǎn)要參數(shù):

Arm Cortex-M3 內(nèi)核

板載 MM32F3273G9P(LQFP144)

USB Host / Device、SPI、I2C

4 x Key、4 x LED

I2S Speaker

TF-Card

Ethernet PHY

1.2 軟件的準(zhǔn)備

庫(kù)函數(shù)和例程(Lib Samples)

該移植過(guò)程中應(yīng)用的 Firmware 分別為 MM32F3270 庫(kù)函數(shù)和例程,下載地址:

https://www.mindmotion.com.cn/products/mm32mcu/mm32f/mm32f_mainstream/mm32f3270/

76b9b040-7c69-11ed-8abf-dac502259ad0.png ? ?

Azure RTOS ThreadX(源碼)

ThreadX 的源代碼已經(jīng)開(kāi)放,我們可以從 ThreadX 公共源代碼存儲(chǔ)庫(kù)獲取 Azure RTOS ThreadX,網(wǎng)址為:

https://github.com/azure-rtos/threadx/

具體的商用使用條件參考Azure的許可證說(shuō)明:

https://www.microsoft.com/en-us/legal/intellectualproperty/tech-licensing/programs?msclkid=f7ab4ff3afa011ec90a79366a52034fa&activetab=pivot1:primaryr11

Microsoft publishes the Azure RTOS source code to GitHub. No license is required to install and use the software for internal development, testing, and evaluation purposes. A license is required to distribute or sell components and devices unless using Azure RTOS licensed hardware.

Azure RTOS 何時(shí)需要許可證?

Microsoft 將 Azure RTOS 源代碼發(fā)布到 GitHub。安裝和使用該軟件進(jìn)行內(nèi)部開(kāi)發(fā)、測(cè)試和評(píng)估無(wú)需許可證。分發(fā)或銷售組件和設(shè)備需要許可證,除非使用 Azure RTOS 許可的硬件。

ThreadX 安裝

可以通過(guò)將 GitHub 存儲(chǔ)庫(kù)克隆到本地計(jì)算機(jī)來(lái)安裝 ThreadX。下面是用于在 PC 上創(chuàng)建 ThreadX 存儲(chǔ)庫(kù)的克隆的典型語(yǔ)法。

shell復(fù)制

git clone https://github.com/azure-rtos/threadx

或者,也可以使用 GitHub 主頁(yè)上的“下載”按鈕來(lái)下載存儲(chǔ)庫(kù)的副本。

下載后的倉(cāng)庫(kù)代碼目錄列表如下:

76dbacf4-7c69-11ed-8abf-dac502259ad0.png ? ?

Azure RTOS ThreadX(源碼)支持的開(kāi)發(fā)環(huán)境

ThreadX 內(nèi)核提供好了各種主流硬件平臺(tái)和軟件平臺(tái)的移植文件,以Cortex_M3為例,可以支持以下六種開(kāi)發(fā)環(huán)境:

76fcd6c2-7c69-11ed-8abf-dac502259ad0.png

本次移植過(guò)程使用Azure RTOS原有的sample_threadx.c文件為例,稍作修改,演示信號(hào)量的功能與應(yīng)用。

2Threadx 信號(hào)量的應(yīng)用

該章節(jié)介紹信號(hào)量的相關(guān)知識(shí),演示程序可在MM32F3273G9P的EVB-F3270上運(yùn)行。

此示例在文件 main_semaphore_demo.c 中實(shí)現(xiàn),旨在說(shuō)明如何在嵌入式多線程環(huán)境中使用信號(hào)量,實(shí)現(xiàn)任務(wù)之間的同步和資源共享機(jī)制。

2.1 信號(hào)量

2.1.1 統(tǒng)計(jì)信號(hào)量

ThreadX 提供 32 位計(jì)數(shù)信號(hào)燈,其值范圍在 0 到 4,294,967,295 之間。計(jì)數(shù)信號(hào)燈有兩個(gè)操作:tx_semaphore_get 和 tx_semaphore_put 。執(zhí)行獲取操作會(huì)將信號(hào)燈數(shù)量減一,如果信號(hào)燈為 0,獲取操作不會(huì)成功。獲取操作的逆操作是放置操作,該操作會(huì)將信號(hào)燈數(shù)量加一。

每個(gè)計(jì)數(shù)信號(hào)燈都是一個(gè)公用資源,ThreadX 對(duì)如何使用計(jì)數(shù)信號(hào)燈沒(méi)有任何限制。

計(jì)數(shù)信號(hào)燈通常用于互相排斥,也可將計(jì)數(shù)信號(hào)燈用作事件通知的方法。

2.1.2 互相排斥

互相排斥用于控制線程對(duì)某些應(yīng)用程序區(qū)域(也稱為關(guān)鍵部分或應(yīng)用程序資源)的訪問(wèn) 。將信號(hào)燈用于互相排斥時(shí),信號(hào)燈的“當(dāng)前計(jì)數(shù)”表示允許訪問(wèn)的線程總數(shù)。在大多數(shù)情況下,用于互相排斥的計(jì)數(shù)信號(hào)燈的初始值為 1,這意味著每次只有一個(gè)線程可以訪問(wèn)關(guān)聯(lián)的資源。只有 0 或 1 值的計(jì)數(shù)信號(hào)燈通常稱為二進(jìn)制信號(hào)燈。

如果使用二進(jìn)制信號(hào)燈,用戶必須阻止同一個(gè)線程對(duì)其已擁有的信號(hào)燈執(zhí)行獲取操作。第二個(gè)獲取操作將失敗,并且可能導(dǎo)致調(diào)用線程無(wú)限期掛起和資源永久不可用。

2.1.3 事件通知

還可以采用生成者-使用者的方式,將計(jì)數(shù)信號(hào)燈用作事件通知。使用者嘗試獲取計(jì)數(shù)信號(hào)燈,而生成者則在有可用的信息時(shí)增加信號(hào)燈。此類信號(hào)燈的初始值通常為 0,此值不會(huì)在生成者為使用者準(zhǔn)備好信息之前增加。用于事件通知的信號(hào)燈也可能從使用 tx_semaphore_ceiling_put 服務(wù)調(diào)用中獲益。此服務(wù)確保信號(hào)燈計(jì)數(shù)值永遠(yuǎn)不會(huì)超過(guò)調(diào)用中提供的值。

2.1.4 創(chuàng)建計(jì)數(shù)信號(hào)燈

計(jì)數(shù)信號(hào)燈由應(yīng)用程序線程在初始化期間或運(yùn)行時(shí)創(chuàng)建。信號(hào)燈的初始計(jì)數(shù)在創(chuàng)建過(guò)程中指定。應(yīng)用程序中計(jì)數(shù)信號(hào)燈的數(shù)量沒(méi)有限制。

2.1.5 線程掛起

嘗試對(duì)當(dāng)前計(jì)數(shù)為 0 的信號(hào)燈執(zhí)行獲取操作時(shí),應(yīng)用程序線程可能會(huì)掛起。

執(zhí)行放置操作后,才會(huì)執(zhí)行掛起線程的獲取操作并恢復(fù)該線程。如果同一計(jì)數(shù)信號(hào)燈上掛起多個(gè)線程,這些線程將按照掛起的順序 (FIFO) 恢復(fù)。

不過(guò),如果應(yīng)用程序在取消線程掛起的信號(hào)燈放置調(diào)用之前調(diào)用 tx_semaphore_prioritize,還可以恢復(fù)優(yōu)先級(jí)。信號(hào)燈設(shè)置優(yōu)先級(jí)服務(wù)將優(yōu)先級(jí)最高的線程放于掛起列表的前面,同時(shí)讓所有其他掛起的線程采用相同的 FIFO 順序。

2.1.6 信號(hào)燈放置通知

某些應(yīng)用程序可能會(huì)發(fā)現(xiàn),在放置信號(hào)燈時(shí)收到通知十分有利。ThreadX 通過(guò) tx_semaphore_put_notify 服務(wù)提供此功能。此服務(wù)將提供的應(yīng)用程序通知函數(shù)注冊(cè)到指定的信號(hào)燈。只要放置了信號(hào)燈,ThreadX 就會(huì)調(diào)用此應(yīng)用程序通知函數(shù)。應(yīng)用程序通知函數(shù)內(nèi)的確切處理由應(yīng)用程序決定;但這通常包括恢復(fù)相應(yīng)的線程以處理新信號(hào)燈放置事件。

2.1.7 運(yùn)行時(shí)信號(hào)燈性能信息

ThreadX 提供可選的運(yùn)行時(shí)信號(hào)燈性能信息。如果 ThreadX 庫(kù)和應(yīng)用程序是在定義 TX_SEMAPHORE_ENABLE_PERFORMANCE_INFO 的情況下生成的,ThreadX 會(huì)累積以下信息。

整個(gè)系統(tǒng)的總數(shù):

信號(hào)燈放置數(shù)

信號(hào)燈獲取數(shù)

信號(hào)燈獲取掛起數(shù)

信號(hào)燈獲取超時(shí)數(shù)

每個(gè)信號(hào)燈的總數(shù):

信號(hào)燈放置數(shù)

信號(hào)燈獲取數(shù)

信號(hào)燈獲取掛起數(shù)

信號(hào)燈獲取超時(shí)數(shù)

此信息在運(yùn)行時(shí)通過(guò)tx_semaphore_performance_info_get和 tx_semaphore_performance_system_info_get 服務(wù)提供。信號(hào)燈性能信息在確定應(yīng)用程序是否正常運(yùn)行時(shí)非常有用。此信息對(duì)于優(yōu)化應(yīng)用程序也很有用。例如,“信號(hào)燈獲取超時(shí)數(shù)”相對(duì)較高可能表明其他線程占用資源的時(shí)間太長(zhǎng)。

2.2 Azure Threadx 信號(hào)量的相關(guān)函數(shù)

tx_semaphore_create 創(chuàng)建計(jì)數(shù)信號(hào)燈

UINTtx_semaphore_create(
TX_SEMAPHORE*semaphore_ptr,
CHAR*name_ptr,
ULONGinitial_count);

函數(shù)說(shuō)明

此服務(wù)創(chuàng)建用于線程間同步的計(jì)數(shù)信號(hào)燈。初始信號(hào)燈計(jì)數(shù)指定為輸入?yún)?shù)。

參數(shù)

semaphore_ptr:指向信號(hào)燈控制塊的指針。

name_ptr:指向信號(hào)燈名稱的指針。

initial_count:指定此信號(hào)燈的初始計(jì)數(shù)。合法值的范圍為 0x00000000 至 0xFFFFFFFF。

返回值

TX_SUCCESS:(0X00) 成功創(chuàng)建信號(hào)燈。

TX_SEMAPHORE_ERROR:(0x0C) 信號(hào)燈指針無(wú)效。指針為 NULL 或已創(chuàng)建信號(hào)燈。

NX_CALLER_ERROR:(0x13) 此服務(wù)的調(diào)用方無(wú)效。

示例

TX_SEMAPHOREmy_semaphore;
UINTstatus;

/*Createacountingsemaphorewhoseinitialvalueis1.
Thisistypicallythetechniqueusedtomakeabinary
semaphore.Binarysemaphoresareusedtoprovide
protectionoveracommonresource.*/
status=tx_semaphore_create(&my_semaphore,
"my_semaphore_name",1);

/*IfstatusequalsTX_SUCCESS,my_semaphoreisreadyfor
use.*/

另請(qǐng)參閱

tx_semaphore_ceiling_put

tx_semaphore_delete

tx_semaphore_get

tx_semaphore_info_get

tx_semaphore_performance_info_get

tx_semaphore_performance_system_info_get

tx_semaphore_prioritize

tx_semaphore_put

tx_semaphore_put_notify

具體函數(shù)的中文說(shuō)明可以參考:

https://docs.microsoft.com/zh-cn/azure/rtos/threadx/chapter4

具體函數(shù)的英文說(shuō)明可以參考:

https://docs.microsoft.com/en-us/azure/rtos/threadx/threadx-smp/chapter4

2.3 信號(hào)量的應(yīng)用演示

2.3.1 工程目錄的建立

打開(kāi)目標(biāo)工程文件夾“MM32F3270Project”:

771536d6-7c69-11ed-8abf-dac502259ad0.png

移除原有樣例.c 文件sample_threadx.c:

77306e74-7c69-11ed-8abf-dac502259ad0.png

參考sample_threadx.c建立main_semaphore_demo.c文件,并添加hardware目錄中的led.c、key.c到工程項(xiàng)目中。

77556058-7c69-11ed-8abf-dac502259ad0.png

注意:

需要在delay.c中配置USE_SYSTICK_DELAY 為 0。

#define USE_SYSTICK_DELAY 0

3Threadx 的信號(hào)量應(yīng)用

創(chuàng)建如下幾個(gè)任務(wù):

LED1閃爍指示當(dāng)前系統(tǒng)運(yùn)行。

K2鍵按下,發(fā)送信號(hào)量同步信號(hào)。

任務(wù)接收到消息后,串口打印。

3.1 代碼實(shí)現(xiàn)

下載調(diào)試默認(rèn)會(huì)運(yùn)行到main()函數(shù),如下為全部實(shí)現(xiàn)的代碼。

Demo演示代碼

/*Thisisasmalldemoofthehigh-performanceThreadXkernel.Itincludesexamplesofsix
threadsofdifferentpriorities,usingamessagequeue,semaphore,andaneventflagsgroup.*/

#include"tx_api.h"
#include"delay.h"
#include"led.h"
#include"key.h"
#include"uart.h"


#defineDEMO_STACK_SIZE1024

#defineTHREAD0_PRIORITY1
#defineTHREAD0_PREEMPTION_THRESHOLD1
#defineTHREAD1_PRIORITY2
#defineTHREAD1_PREEMPTION_THRESHOLD2

#defineTHREAD5_PRIORITY4
#defineTHREAD5_PREEMPTION_THRESHOLD4



//#defineTHREAD5_PREEMPTION_THRESHOLD_NEW0


/*DefinetheThreadXobjectcontrolblocks...*/
TX_THREADthread_0;
TX_THREADthread_1;

TX_THREADthread_5;

TX_SEMAPHORESemaphore;

/*Definethecountersusedinthedemoapplication...*/
ULONGthread_0_counter;
ULONGthread_1_counter;

ULONGthread_5_counter;


/*Definethethreadstacks.*/
UCHARthread_0_stack[DEMO_STACK_SIZE];
UCHARthread_1_stack[DEMO_STACK_SIZE];

UCHARthread_5_stack[DEMO_STACK_SIZE];

/*Definethreadprototypes.*/

voidthread_0_entry(ULONGthread_input);
voidthread_1_entry(ULONGthread_input);

voidthread_5_entry(ULONGthread_input);


volatileunsignedintbootloop;

/*Definemainentrypoint.*/



intmain()
{
DELAY_Init();//cannotusesystick
LED_Init();
KEY_Init();
CONSOLE_Init(115200);
printf("!!!Start!!!
");

/*EntertheThreadXkernel.*/
tx_kernel_enter();
}


/*Definewhattheinitialsystemlookslike.*/

voidtx_application_define(void*first_unused_memory)
{
/*Createthread0.*/
tx_thread_create(
&thread_0,
"thread0",
thread_0_entry,
0,
thread_0_stack,
DEMO_STACK_SIZE,
THREAD0_PRIORITY,
THREAD0_PREEMPTION_THRESHOLD,
TX_NO_TIME_SLICE,
TX_AUTO_START);

/*Createthread1.*/
tx_thread_create(
&thread_1,
"thread1",
thread_1_entry,
0,
thread_1_stack,
DEMO_STACK_SIZE,
THREAD1_PRIORITY,
THREAD1_PREEMPTION_THRESHOLD,
TX_NO_TIME_SLICE,
TX_AUTO_START);


/*Createthread5.*/
tx_thread_create(
&thread_5,
"thread5",
thread_5_entry,
5,
thread_5_stack,
DEMO_STACK_SIZE,
THREAD5_PRIORITY,
THREAD5_PREEMPTION_THRESHOLD,
TX_NO_TIME_SLICE,
TX_AUTO_START);

/*Createasemaphoreforsignalsynchronization*/
tx_semaphore_create(&Semaphore,"Semaphore",0);

}


/*Definethetestthreads.*/

voidthread_0_entry(ULONGthread_input)
{
/*ThisthreadsimplycontrolsLEDflashingtoindicatethatthesystemisrunning*/
while(1)
{
/*Incrementthethreadcounter.*/
thread_0_counter++;

LED1_TOGGLE();

/*Sleepfor200ticks.*/
tx_thread_sleep(200);

}
}

voidthread_1_entry(ULONGthread_input)
{
UINTstatus;
/*Thisthreadsimplysuccessfullyreceivesthesemaphoreandstartstoprintinformation*/
while(1)
{
/*Incrementthethreadcounter.*/
thread_1_counter++;
status=tx_semaphore_get(&Semaphore,TX_WAIT_FOREVER);
if(status==TX_SUCCESS)
{
/*Receivethesemaphore*/
printf("Synchronizationsemaphorereceived
");
}
}
}


voidthread_5_entry(ULONGthread_input)
{
UCHARt=0;
/*Thisthreadsimplyscanbuttonispressedtosendthesemaphore.*/
while(1)
{
/*Incrementthethreadcounter.*/
thread_5_counter++;

t=KEY_Scan(0);
if(KEY1_PRES==t)
{
LED1_TOGGLE();
}
elseif(KEY2_PRES==t){
LED2_TOGGLE();
/*K2ispressedtosendasemaphore*/
tx_semaphore_put(&Semaphore);
}
elseif(KEY3_PRES==t){
LED3_TOGGLE();
}
elseif(KEY4_PRES==t){
LED4_TOGGLE();
}
else{
tx_thread_sleep(10);
}
}
}

3.2 下載與調(diào)試

運(yùn)行程序,板載LED1閃爍。觀察串口調(diào)試助手,按下K2鍵,串口打印信息:

77758bf8-7c69-11ed-8abf-dac502259ad0.png

創(chuàng)建信號(hào)量初始值為 0,用于信號(hào)同步。任務(wù)5執(zhí)行按鍵掃描,當(dāng)K2按下時(shí)通過(guò)tx_semaphore_put發(fā)送信號(hào)量,對(duì)計(jì)數(shù)值執(zhí)行加1操作。任務(wù)1通過(guò)tx_semaphore_get用于信號(hào)量接收,對(duì)計(jì)數(shù)值執(zhí)行減1操作,實(shí)際運(yùn)行情況是K2鍵每按下一次,串口打印一條信息,Demo演示成功。

4小結(jié)

Azure RTOS 使用信號(hào)量能夠方便地實(shí)現(xiàn)任務(wù)之間的同步和資源共享機(jī)制,結(jié)合MM32F3270的強(qiáng)大性能,可以實(shí)現(xiàn)Azure RTOS廣泛的應(yīng)用場(chǎng)景。

審核編輯:湯梓紅

聲明:本文內(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)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17484

    瀏覽量

    354628
  • RTOS
    +關(guān)注

    關(guān)注

    23

    文章

    829

    瀏覽量

    120151
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5222

    瀏覽量

    99201
  • 信號(hào)量
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    8406
  • Azure
    +關(guān)注

    關(guān)注

    1

    文章

    124

    瀏覽量

    12938

原文標(biāo)題:靈動(dòng)微課堂 (第240講)|使用MM32F3270基于Azure RTOS信號(hào)量的應(yīng)用

文章出處:【微信號(hào):MindMotion-MMCU,微信公眾號(hào):靈動(dòng)MM32MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MM32F3270系列32位MCU的特點(diǎn)有哪些

    上海靈動(dòng)微電子推出全新主流型MM32F3270系列32位MCU,此款MM32F3270系列是基于M3內(nèi)核的32位微控制器,MM32F3270適用于要求高集成度的高性能控制領(lǐng)域,如:工業(yè)控制、消防監(jiān)控
    發(fā)表于 11-03 07:20

    使用MM32F3270基于Azure RTOS定時(shí)器組的應(yīng)用

    各種產(chǎn)品(包括消費(fèi)者設(shè)備、醫(yī)療電子設(shè)備和工業(yè)控制設(shè)備)上的部署次數(shù)已達(dá)數(shù)十億次。在前文描述移植基本內(nèi)核的基礎(chǔ)上,該應(yīng)用手冊(cè)描述了MM32F3270系列MCU結(jié)合Azure RTOS ThreadX
    發(fā)表于 02-07 14:18

    靈動(dòng)微電子MM32F3270系列MCU的特點(diǎn)介紹

    上海靈動(dòng)微電子推出全新主流型MM32F3270系列32位MCU,此款MM32F3270系列是基于M3內(nèi)核的32位微控制器,MM32F3270適用于要求高集成度的高性能控制領(lǐng)域,如:工業(yè)控制、消防監(jiān)控
    發(fā)表于 03-22 16:57 ?2217次閱讀

    【國(guó)產(chǎn)MCU移植】MM32F3270 EVBoard

    【國(guó)產(chǎn)MCU移植】MM32F3270 EVBoard
    發(fā)表于 12-03 17:21 ?5次下載
    【國(guó)產(chǎn)MCU移植】<b class='flag-5'>MM32F3270</b> EVBoard

    基于MM32F3270 以太網(wǎng) Client使用

    接下來(lái)給大家介紹基于TCP包的通訊。內(nèi)容分為基于MM32F3270以太網(wǎng)Client的使用與基于MM32F3270以太網(wǎng)Server的使用。
    發(fā)表于 02-08 15:10 ?0次下載
    基于<b class='flag-5'>MM32F3270</b> 以太網(wǎng) Client使用

    MM32F3270 產(chǎn)品手冊(cè)(中文版)

    MM32F3270 產(chǎn)品手冊(cè)(中文版)
    發(fā)表于 02-23 18:40 ?0次下載
    <b class='flag-5'>MM32F3270</b> 產(chǎn)品手冊(cè)(中文版)

    MM32F3270 勘誤表(中文版)

    MM32F3270 勘誤表(中文版)
    發(fā)表于 02-23 18:42 ?0次下載
    <b class='flag-5'>MM32F3270</b> 勘誤表(中文版)

    使用MM32F3270基于Azure RTOS事件標(biāo)志組的應(yīng)用

    使用MM32F3270基于Azure RTOS事件標(biāo)志組的應(yīng)用
    的頭像 發(fā)表于 10-27 11:31 ?611次閱讀
    使用<b class='flag-5'>MM32F3270</b>基于<b class='flag-5'>Azure</b> <b class='flag-5'>RTOS</b>事件標(biāo)志組的應(yīng)用

    使用MM32F3270基于Azure RTOS (ThreadX) 的移植

    使用MM32F3270基于Azure RTOS (ThreadX) 的移植
    的頭像 發(fā)表于 10-27 10:15 ?869次閱讀
    使用<b class='flag-5'>MM32F3270</b>基于<b class='flag-5'>Azure</b> <b class='flag-5'>RTOS</b> (ThreadX) 的移植

    MM32F3270 ADC注入通道

    MM32F3270 ADC注入通道
    的頭像 發(fā)表于 09-27 15:59 ?1101次閱讀
    <b class='flag-5'>MM32F3270</b> ADC注入通道

    使用MM32F3270 FSMC驅(qū)動(dòng)OLED

    使用MM32F3270 FSMC驅(qū)動(dòng)OLED
    的頭像 發(fā)表于 09-27 15:30 ?1095次閱讀
    使用<b class='flag-5'>MM32F3270</b> FSMC驅(qū)動(dòng)OLED

    使用MM32F3270 FSMC驅(qū)動(dòng)TFT-LCD

    使用MM32F3270 FSMC驅(qū)動(dòng)TFT-LCD
    的頭像 發(fā)表于 09-27 15:34 ?1262次閱讀
    使用<b class='flag-5'>MM32F3270</b> FSMC驅(qū)動(dòng)TFT-LCD

    基于MM32F3270以太網(wǎng)Client使用

    基于MM32F3270以太網(wǎng)Client使用
    的頭像 發(fā)表于 09-27 15:44 ?803次閱讀
    基于<b class='flag-5'>MM32F3270</b>以太網(wǎng)Client使用

    基于MM32F3270以太網(wǎng)UDP使用

    基于MM32F3270以太網(wǎng) UDP使用
    的頭像 發(fā)表于 09-27 15:42 ?580次閱讀
    基于<b class='flag-5'>MM32F3270</b>以太網(wǎng)UDP使用

    基于MM32F3270以太網(wǎng)Client_Socket使用

    基于MM32F3270以太網(wǎng)Client_Socket使用
    的頭像 發(fā)表于 09-27 15:37 ?611次閱讀
    基于<b class='flag-5'>MM32F3270</b>以太網(wǎng)Client_Socket使用
    主站蜘蛛池模板: 亚洲jizzjizz中文在线播放 | 插插插天天 | 欧亚激情偷乱人伦小说视频 | 亚洲a影院| 77米奇影院 | 国内久久精品视频 | 寄宿日记免费看 | 亚洲一区在线观看视频 | 免费网站啪啪大全 | 国产黄色的视频 | 天天想夜夜操 | 永久免费观看黄网站 | 色香婷婷 | 国产美女一级视频 | 亚洲另类电击调教在线观看 | 4虎最新地址 | 日本一区二区三区不卡在线视频 | 爱爱小说视频永久免费网站 | 国产色婷婷精品免费视频 | 97国内精品久久久久久久影视 | yellow中文字幕久久网 | 757福利影院合集3000 | 亚洲国产精品综合久久久 | 免费男女视频 | 亚洲精品久久久久午夜福 | 国语自产拍在线观看7m | 在线亚洲精品中文字幕美乳 | 222网站高清免费观看 | 久久国产乱子伦精品免费一 | 日韩精品一区二区三区免费视频 | 国产精品美女视频 | 亚洲综合欧美日本另类激情 | 最新在线视频 | 开心激情五月网 | 国产精品人成在线播放新网站 | 精品视频一区二区三区 | 黄色美女免费网站 | 都市激情 亚洲 | 天天插插 | 亚洲va久久久噜噜噜久久男同 | 亚洲一二三四 |