伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

極海APM32F427 MCU在RT-Thread系統上使用LwIP網絡功能

Geehy極海半導體 ? 來源:21ic論壇極海半導體專區 ? 2026-04-02 15:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

《極海芯得》系列內容為用戶使用極海系列產品的經驗總結,均轉載自21ic論壇極海半導體專區,全文未作任何修改,未經原文作者授權禁止轉載。

下面是基于RT-Thread的ENV命令行開發環境,在APM32F427上使用LwIP網絡協議棧實現網絡通信功能的。

1. 工具和RT-Thread源碼的準備

1.1 ENV工具的安裝和使用

這里只做基本的介紹,詳細的使用方法請點擊下面鏈接看RTT的官方文檔中心中對ENV工具的介紹。

https://www.rt-thread.org/document/site/#/development-tools/env/env

Env 是 RT-Thread 推出的開發輔助工具,針對基于 RT-Thread 操作系統的項目工程,提供編譯構建環境、圖形化系統配置及軟件包管理功能。

其內置的 menuconfig 提供了簡單易用的配置剪裁工具,可對內核、組件和軟件包進行自由裁剪,使系統以搭積木的方式進行構建。

ENV工具可以從下面的RTT官方網站下載。

https://www.rt-thread.org/download.html#download-rt-thread-env-tool

1.2 下載RTT源碼

到下面官網下載:

https://www.rt-thread.org/download.html#download-rt-thread-source-code

11d9d864-2d71-11f1-90a1-92fbcf53809c.png

然后點擊碼云下載。

1242d6d4-2d71-11f1-90a1-92fbcf53809c.png

點擊下載ZIP就行。

當然,如果有git bash的話,可以使用 git clone 命令進行遠程源碼拉取到本地電腦中。

注意:請下載最新版本的RTT源碼包,太老版本的話可能還沒有APM32的BSP包。

2. 進入到APM32F407的bsp根目錄下編譯bsp

進入apm32f4的bsp根目錄下:

12a751ea-2d71-11f1-90a1-92fbcf53809c.png

然后右鍵在該目錄下打開ENV工具(如果沒有把ENV添加到右鍵菜單的話,自己看RTT文檔進行操作,或者自行切換ENV路徑到該目錄下)。

130e4684-2d71-11f1-90a1-92fbcf53809c.png

打開ENV工具之后,在該目錄下輸入 scons 命令即可編譯該BSP。

1373d65c-2d71-11f1-90a1-92fbcf53809c.png

最終編譯成功如下:

13d91a30-2d71-11f1-90a1-92fbcf53809c.png

如果使用 mdk/iar 來進行項目開發,可以直接使用 BSP 中的工程文件或者使用以下命令中的其中一種,重新生成工程,再進行編譯下載。

scons --target=iar

scons --target=mdk4

scons --target=mdk5

3. 復制APM32F407的BSP修改為APM32F427的BSP

由于官方可能還沒有添加APM32F427的BSP目錄,但是沒關系,由于APM32F407與APM32F427很像。我們基于APM32F407修改為F427即可。

主要就是修改407的時鐘配置函數。打開工程中的drv_clk.c文件,修改 clk_init 函數對于時鐘的初始化函數。

修改代碼如下:

void SystemInit(void)

{

/* FPU settings */

#if(__FPU_PRESENT == 1) && (__FPU_USED == 1)

SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); ?//!< set CP10 and CP11 Full Access

#endif

/* Reset the RCM clock configuration to the default reset state */

/* Set HSIEN bit */

RCM->CTRL_B.HSIEN = BIT_SET;

/* Reset CFG register */

RCM->CFG = 0x00000000;

/* Reset HSEEN, CSSEN and PLL1EN bits */

RCM->CTRL &= (uint32_t)0xFEF6FFFF;

/* Reset PLL1CFG register */

RCM->PLL1CFG = 0x24003010;

/* Reset HSEBCFG bit */

RCM->CTRL &= (uint32_t)0xFFFBFFFF;

/* Disable all interrupts */

RCM->INT = 0x00000000;

#ifdefined(DATA_IN_ExtSRAM)

SystemInit_ExtSRAM();

#endif/* DATA_IN_ExtSRAM */

SystemClockConfig();

/* Configure the Vector Table location add offset address */

#ifdefVECT_TAB_SRAM

SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */

#else

SCB->VTOR = FMC_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */

#endif

}

4. 使能 LwIP 與 net dev

4.1 首先使能以太網板級外設驅動

在ENV工具中輸入 menuconfig 命令:

14347cd6-2d71-11f1-90a1-92fbcf53809c.png

本來在這個配置項下應該有板級外設驅動選項配置的,但是沒有看到,很明顯是該bsp包還沒支持這個功能。那么后面只能自己把以太網板級外設驅動文件(drv_eth.c)添加到keil工程里面了。當然,就算支持該功能,如果沒有drv_eth.c這個文件的支持那也沒用。

4.2 啟用 lwIP 與 net device

1493ae04-2d71-11f1-90a1-92fbcf53809c.png

然后再使能LwIP網絡協議棧。其中,在該配置項下面我們把DHCP功能關閉了,使用靜態IP地址。然后我們再使能 netif loopback 功能,該功能就是可以自己ping通自己的。

14f1fa68-2d71-11f1-90a1-92fbcf53809c.png

配置完成后,我們保存退出。

最后輸入命令:scons --target=mdk5 把剛剛的配置同步到 MDK5 工程。

5. 編寫基于RTT的以太網板級驅動drv_eth.c

當我們添加了LwIP網絡協議棧之后,就可以編譯代碼后可以下載到開發板運行。如下,我們下載代碼到開發板后,在串口終端運行 ifconfig 命令查看網絡狀態,可以看到有錯誤:

1555c69c-2d71-11f1-90a1-92fbcf53809c.png

這是因為以太網的驅動文件還沒添加進去編譯的原因。

5.1 添加編寫好的drv_eth.c文件

因為apm32的BSP包里面并沒有RTT的以太網板級驅動文件drv_eth.c,所以需要我們自己編寫這個文件。這個文件我已經編寫好了,然后我們自己把這個文件復制到apm32的bsp包里面,而且手動添加到MDK5的工程中即可:

15b10cf0-2d71-11f1-90a1-92fbcf53809c.png ? 160f23bc-2d71-11f1-90a1-92fbcf53809c.png

5.2 打開ETH板級外設驅動,和選擇PHY芯片型號

因為 drv_eth.c 文件使用了宏 BSP_USING_ETH 默認關閉了這個外設驅動的,需要定義這個宏才能打開這個外設驅動,另外開發板使用的PHY芯片的宏也需要定義,目前支持的芯片類型有,LAN8720、DP83848以及DM9161。

我們就在 drv_eth.c 文件(或者rtconfig.h文件也行)的最前面定義下面兩個宏:

#defineBSP_USING_ETH

#definePHY_USING_DP83848C // 根據自己使用的phy芯片型號定義

5.3 添加標準外設驅動文件apm32f4xx_eth.c和apm32f4xx_eth.h

添加了上面那兩個宏之后,編譯一大堆報錯,這是因為MDK還沒有添加eth的標準庫外設驅動文件apm32f4xx_eth.c和apm32f4xx_eth.h。

1670a2f4-2d71-11f1-90a1-92fbcf53809c.png

我發現RTT的源碼里面,apm32的bsp包竟然沒有apm32f4xx_eth.c和apm32f4xx_eth.h這兩個文件,那沒辦法了,只好到apm32的官網下載f4的SDK包,然后再把這兩個文件復制到bsp包的庫目錄下面。然后再手動添加到MDK工程里面。

5.4 添加包含apm32f4xx_eth.h頭文件代碼

添加了標準外設驅動文件apm32f4xx_eth.c到MDK工程之后,這時編譯,還是報上面步驟一樣的錯誤,這是因為沒有包含 apm32f4xx_eth.h 頭文件,我們在 board.h 文件中寫上包含該頭文件。另外,因為后面的代碼有用到apm32f4xx_syscfg.h這個頭文件,所以這里一起寫上,如下圖:

16ceb114-2d71-11f1-90a1-92fbcf53809c.png

5.5 添加 phy_reset 和 ETH_GPIO_Configuration 函數

繼續編譯,會發現還有兩個鏈接報錯,說沒有定義 phy_reset 和 ETH_GPIO_Configuration 函數,這兩個函數一個是phy芯片硬件復位引腳進行復位的,另外一個函數是eth外設GPIO口的初始化。

1731482e-2d71-11f1-90a1-92fbcf53809c.png

這兩個函數是在 drv_eth.c 文件中要用到的,因為這兩個函數和板級硬件的關聯太大,并不能確定用戶使用的是什么GPIO口,所以獨立出來由用戶自己添加。

我目前使用的事RMII接口和PD11作為復位引腳,我們在 board.c 文件中添加下面的代碼。

phy_reset 函數:

/*

* phy reset

*/

void phy_reset(void)

{

/* PHY RESET PIN: PD11 */

GPIO_Config_T GPIO_ConfigStruct;

GPIO_ConfigStruct.mode = GPIO_MODE_OUT;

GPIO_ConfigStruct.speed = GPIO_SPEED_2MHz;

GPIO_ConfigStruct.otype = GPIO_OTYPE_PP;

GPIO_ConfigStruct.pupd = GPIO_PUPD_NOPULL;

RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOD);

GPIO_ConfigStruct.pin = GPIO_PIN_11;

GPIO_Config(GPIOD, &GPIO_ConfigStruct);

GPIO_ResetBit(GPIOD, GPIO_PIN_11);

rt_thread_delay(2);

GPIO_SetBit(GPIOD, GPIO_PIN_11);

rt_thread_delay(2);

}

ETH_GPIO_Configuration 函數:

/* MII/RMII Media interface selection */

//#defineMII_MODE

#defineRMII_MODE

/*

* GPIO Configuration for ETH

*/

void ETH_GPIO_Configuration(void)

{

GPIO_Config_T GPIO_ConfigStruct;

/* Enable SYSCFG clock */

RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_SYSCFG);

/* Enable GPIOs clocks */

RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOA | RCM_AHB1_PERIPH_GPIOC | RCM_AHB1_PERIPH_GPIOG);

/* MII/RMII Media interface selection */

#ifdefined(MII_MODE) /* Mode MII. */

SYSCFG_ConfigMediaInterface(SYSCFG_INTERFACE_MII);

#elifdefined(RMII_MODE) /* Mode RMII. */

SYSCFG_ConfigMediaInterface(SYSCFG_INTERFACE_RMII);

#endif

/*********************** Ethernet pins configuration ***************************/

/*

ETH_MDIO -------------------------> PA2

ETH_MDC --------------------------> PC1

ETH_MII_RX_CLK/ETH_RMII_REF_CLK---> PA1

ETH_MII_RX_DV/ETH_RMII_CRS_DV ----> PA7

ETH_MII_RXD0/ETH_RMII_RXD0 -------> PC4

ETH_MII_RXD1/ETH_RMII_RXD1 -------> PC5

ETH_MII_TX_EN/ETH_RMII_TX_EN -----> PG11

ETH_MII_TXD0/ETH_RMII_TXD0 -------> PG13

ETH_MII_TXD1/ETH_RMII_TXD1 -------> PG14

**** Just for MII Mode ****

ETH_MII_CRS ----------------------> PA0

ETH_MII_COL ----------------------> PA3

ETH_MII_TX_CLK -------------------> PC3

ETH_MII_RX_ER --------------------> PB10

ETH_MII_RXD2 ---------------------> PB0

ETH_MII_RXD3 ---------------------> PB1

ETH_MII_TXD2 ---------------------> PC2

ETH_MII_TXD3 ---------------------> PB8

*/

/* Configure PC1, PC4 and PC5 */

GPIO_ConfigStruct.pin = GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5;

GPIO_ConfigStruct.speed = GPIO_SPEED_100MHz;

GPIO_ConfigStruct.mode = GPIO_MODE_AF;

GPIO_ConfigStruct.otype = GPIO_OTYPE_PP;

GPIO_ConfigStruct.pupd = GPIO_PUPD_NOPULL;

GPIO_Config(GPIOC, &GPIO_ConfigStruct);

GPIO_ConfigPinAF(GPIOC, GPIO_PIN_SOURCE_1, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOC, GPIO_PIN_SOURCE_4, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOC, GPIO_PIN_SOURCE_5, GPIO_AF_ETH);

/* Configure PG11, PG13 and PG14 */

GPIO_ConfigStruct.pin = GPIO_PIN_11 | GPIO_PIN_13 | GPIO_PIN_14;

GPIO_Config(GPIOG, &GPIO_ConfigStruct);

GPIO_ConfigPinAF(GPIOG, GPIO_PIN_SOURCE_11, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOG, GPIO_PIN_SOURCE_13, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOG, GPIO_PIN_SOURCE_14, GPIO_AF_ETH);

/* Configure PA1, PA2 and PA7 */

GPIO_ConfigStruct.pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7;

GPIO_Config(GPIOA, &GPIO_ConfigStruct);

GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_1, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_2, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_7, GPIO_AF_ETH);

#ifdefMII_MODE

RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOB);

/* Configure PC2, PC3 */

GPIO_ConfigStruct.pin = GPIO_PIN_2 | GPIO_PIN_3;

GPIO_Config(GPIOC, &GPIO_ConfigStruct);

GPIO_ConfigPinAF(GPIOC, GPIO_PIN_SOURCE_2, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOC, GPIO_PIN_SOURCE_3, GPIO_AF_ETH);

/* Configure PB0, PB1, PB10 and PB8 */

GPIO_ConfigStruct.pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_10 | GPIO_PIN_8;

GPIO_Config(GPIOB, &GPIO_ConfigStruct);

GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_0, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_1, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_10, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_8, GPIO_AF_ETH);

/* Configure PA0, PA3 */

GPIO_ConfigStruct.pin = GPIO_PIN_0 | GPIO_PIN_3;

GPIO_Config(GPIOA, &GPIO_ConfigStruct);

GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_0, GPIO_AF_ETH);

GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_3, GPIO_AF_ETH);

#endif

}

當添加完上面的代碼之后,再次編譯就可以編譯通過了,沒有任何警告和錯誤,如下:

178c343c-2d71-11f1-90a1-92fbcf53809c.png

到這里已經完成了所有代碼的添加和移植了,LwIP網絡協議棧也可以正常運行起來了。

6. 驗證網絡功能是否正常

下載程序后運行,然后再串口終端輸入 ifconfig 命令,可以看到網卡已經正常工作了,而且使用的是靜態IP。

17ed97b8-2d71-11f1-90a1-92fbcf53809c.png

我們ping一下電腦主機IP(我的電腦主機IP是:1992.168.1.50),可以看到正常ping通,說明網絡功能已經正常了。

18491e1c-2d71-11f1-90a1-92fbcf53809c.png

7. 使用RTT的tcp client和server例程

7.1 配置menuconfig

首先,需要在menuconfig開啟使用這兩個例程,配置如下:

18a4ff70-2d71-11f1-90a1-92fbcf53809c.png

7.2 更新軟件包

保存配置退出之后,我們要去下載在線軟件包,在ENV輸入 pkgs --update 命令即可,然后可以看到軟件包下載下來了。

190c5cce-2d71-11f1-90a1-92fbcf53809c.png

最后,我們執行命令,scons --target=mdk5 同步到 MDK5 工程里面。

注意:前面我們手動添加了一些文件到 MDK 工程里面,如果我們這里執行了 scons --target=mdk5 這個命令之后,其實會把我們之前添加的配置文件全部都移除掉的,這是使用 ENV 的一個不好的地方。

7.3 測試驗證

然后,編譯下載程序到板子上運行。

這兩個例程是以命令的形式放在串口終端下運行的,我們在串口終端下運行 tcpserv 命令,使用開發板作為服務器,如下:

19764472-2d71-11f1-90a1-92fbcf53809c.png

可以看到服務器端口端口是5000。

然后我們在電腦端使用網絡調試工具作為客戶端,去連接開發板,如下:

19d39654-2d71-11f1-90a1-92fbcf53809c.png

以上,就是在ENV環境下,APM32F4在RT-Thread系統上使用LwIP網絡功能的詳細過程。

提示:關于文章的第五節,其實已經不需要我們自己添加APM32F427的drv_etc.c網絡驅動文件了,因為官方已經做好了。

注:文章作者在原帖中提供了詳細代碼,有需要請至原文21ic論壇

原文地址:https://bbs.21ic.com/icview-3501388-1-1.html?_dsign=c8a71825

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 網絡通信
    +關注

    關注

    4

    文章

    843

    瀏覽量

    32629
  • 開發環境
    +關注

    關注

    1

    文章

    274

    瀏覽量

    17656
  • LwIP
    +關注

    關注

    2

    文章

    91

    瀏覽量

    29684
  • RT-Thread
    +關注

    關注

    32

    文章

    1629

    瀏覽量

    45070

原文標題:極海芯得 EP.79 | APM32F427在RT-Thread系統上如何使用LwIP網絡功能實現網絡通信

文章出處:【微信號:geehysemi,微信公眾號:Geehy極海半導體】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RT-Thread最新推出Nano簡版

    RT-Thread適時推出第一個RT-Thread Nano簡版,適用于家電、消費電子、醫療設備、工控等領域大量使用的32位ARM入門級MCU的場合,支持多任務處理、信號量和郵箱等相
    發表于 07-31 11:35 ?5882次閱讀

    APM32F427如何實現自定義USB HID設備與PC進行通信

    最近需要使用到 APM32F427 枚舉成Custom HID設備進行用戶自定義通信,但是官方的例程只有提供的HID枚舉為鼠標或者鍵盤類型的設備。這里記錄一下,怎么使用Geehy官方的USB中間件,實現自定義的USB HID設備進行用戶通信。
    的頭像 發表于 03-30 09:30 ?2516次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b><b class='flag-5'>APM32F427</b>如何實現自定義USB HID設備與PC進行通信

    SC0085 AT32RT-Thread運行LwIP協議棧

    示例目的演示RT-Thread運行LwIP協議棧,并搭建一個UDP echo server支持型號列表:支持型號AT32F407xxAT32F
    發表于 08-23 20:40

    RT-Thread系統移植eRPC并添加lwip的步驟

    還有 snprintf 變成 rt_snprintf,memset 變成 rt_memset 等驗證有沒有發現,我們可以設備跑 eRPC了。到目前為止,我們已經添加了
    發表于 09-05 16:43

    如何將RT-Thread系統移植到GD32F427

    RT-Thread移植到GD32F427。本文主要實現如下功能:1、基于RT-Thread 現在gd32407v-start的BSP更新為
    發表于 12-13 16:28

    【國產MCU系列】 HK32F030 移植 RT-Thread Nano

    如需下載相關開源資料請點擊閱讀原文這是一個航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了 Keil 裸機工程的基礎上進行 RT-Thread Nano 移
    發表于 11-21 18:51 ?42次下載
    【國產<b class='flag-5'>MCU</b>系列】<b class='flag-5'>在</b> HK32<b class='flag-5'>F</b>030 <b class='flag-5'>上</b>移植 <b class='flag-5'>RT-Thread</b> Nano

    RT-Thread系統移植到STM32f103

    RT-Thread系統移植到STM32f103
    發表于 12-09 12:51 ?26次下載
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>系統</b>移植到STM32<b class='flag-5'>f</b>103

    【國產MCU系列】 HK32F030 移植 RT-Thread Nano

    這是一個航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了 Keil 裸機工程的基礎上進行 RT-Thread Nano 移植的全過程。在按文檔中心...
    發表于 01-25 17:42 ?4次下載
    【國產<b class='flag-5'>MCU</b>系列】<b class='flag-5'>在</b> HK32<b class='flag-5'>F</b>030 <b class='flag-5'>上</b>移植 <b class='flag-5'>RT-Thread</b> Nano

    RT-Thread全球技術大會:RT-Thread編寫測試用例

    RT-Thread全球技術大會:RT-Thread編寫測試用例 ? ? ? ? ? 審核編輯:彭靜
    的頭像 發表于 05-27 16:28 ?2207次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:<b class='flag-5'>在</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>上</b>編寫測試用例

    RT-Thread已經全面支持APM32F1系列MCU

    近日,RT-Thread 和其高級會員合作伙伴半導體宣布:正式完成APM32F4系列MCURT-T
    發表于 08-30 09:45 ?1740次閱讀

    APM32F030RCT6_軟件問題_RT-Thread注冊設備時,進入硬件報錯

    APM32F030RCT6_軟件問題_RT-Thread注冊設備時,進入硬件報錯
    發表于 11-09 21:03 ?0次下載
    <b class='flag-5'>APM32F</b>030RCT6_軟件問題_<b class='flag-5'>RT-Thread</b><b class='flag-5'>在</b>注冊設備時,進入硬件報錯

    機智云設備移植RT-Thread

    程中,通常會有多個功能,這個時候就需要用到實時系統,比如FreeRTOS,AzureRTOSThreadX,RT-Thread等,筆者這里推薦RT-thread。
    的頭像 發表于 04-19 18:39 ?1887次閱讀
    機智云設備移植<b class='flag-5'>RT-Thread</b>

    RT-Thread移植使用webserver (lwip+httpd)

    開發環境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源包為0.2.2,rt-thread版本為4.0.3。
    的頭像 發表于 10-12 12:49 ?2800次閱讀
    <b class='flag-5'>RT-Thread</b>移植使用webserver (<b class='flag-5'>lwip</b>+httpd)

    RT-ThreadLan8720a和 lwip基礎移植ntp流程

    開發環境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源包為0.2.2。以RT-Thread中Lan8720和
    的頭像 發表于 10-12 16:59 ?3384次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>在</b>Lan8720a和 <b class='flag-5'>lwip</b>基礎<b class='flag-5'>上</b>移植ntp流程

    APM32F427系列MCU榮獲IEC 60730/60335功能安全認證

    近日,APM32F427系列工業級高性能拓展型MCU,成功通過IEC 60730/60335功能安全認證。這標志著該系列產品
    的頭像 發表于 02-09 09:15 ?842次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b><b class='flag-5'>APM32F427</b>系列<b class='flag-5'>MCU</b>榮獲IEC 60730/60335<b class='flag-5'>功能</b>安全認證