91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

MCU外設(shè)初始化:為什么參數(shù)配置必須優(yōu)先于使能

安芯 ? 來源:jf_29981791 ? 作者:jf_29981791 ? 2025-08-13 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

微控制器領(lǐng)域,初始化參數(shù)配置階段至關(guān)重要。此時(shí),雖無電源驅(qū)動(dòng),但微控制器在使能信號(hào)到來前,借初始化參數(shù)配置這一精細(xì)步驟,開啟關(guān)鍵準(zhǔn)備進(jìn)程。初始化參數(shù)配置如同物理坐標(biāo)錨定、邏輯指令部署、內(nèi)在秩序預(yù)設(shè),各參數(shù)像深埋沃土的種子,坐標(biāo)、朝向、深度經(jīng)精密計(jì)算,為未來指令運(yùn)行奠定基礎(chǔ)。

下面以國科安芯的MCU芯片AS32A601為例,詳細(xì)展示下MCU這一嚴(yán)格的設(shè)計(jì)特性:

  1. 外設(shè)檢測階段:MCU會(huì)嘗試檢測外設(shè)可用性,然后才開始執(zhí)行用戶代碼。
  2. 時(shí)鐘樹配置:系統(tǒng)時(shí)鐘(CK_SYS)、AHB、APB等總線時(shí)鐘必須在其他外設(shè)初始化前完成配置。

為什么參數(shù)要在使能前配置?

避免電平跳變:

① GPIO復(fù)用模式下,若先使能外設(shè)再配置復(fù)用選擇器,會(huì)導(dǎo)致短暫電平變化。

② 普通輸出IO默認(rèn)輸出低電平,若先使能再設(shè)置高電平,會(huì)出現(xiàn)短暫低脈沖。

防止硬件沖突:

① 時(shí)鐘使能必須在外設(shè)初始化之前,否則會(huì)導(dǎo)致外設(shè)無法正常工作。

寄存器默認(rèn)值可能不符合應(yīng)用需求,直接使能可能導(dǎo)致意外行為。

確保穩(wěn)定狀態(tài):

① 外設(shè)使能前需要建立正確的時(shí)鐘源、中斷優(yōu)先級(jí)等基礎(chǔ)環(huán)境。

② 參數(shù)配置需要一定時(shí)間生效,立即使能可能導(dǎo)致功能異常。

  1. 時(shí)鐘配置

i. 通過閱讀芯片手冊,確認(rèn)好項(xiàng)目所需外設(shè)所在時(shí)鐘

ii. 確保時(shí)鐘最先配置,再去配置外設(shè)

**void** Systemclock_Init()

{

    //注意:此處需要開啟系統(tǒng)總線級(jí)的時(shí)鐘配置,具體外設(shè)時(shí)鐘配置可在各模塊初始化函數(shù)中具體開啟,具體請參考時(shí)鐘樹或者下圖注釋

    //      1. 使用串口時(shí),由于串口掛在APB0總線下,需要在此處開啟AXIBUS3時(shí)鐘、AXI4TOAPB0時(shí)鐘以及APBBUS0時(shí)鐘。

    //      2. 使用延時(shí)函數(shù)時(shí),需要開啟CLINT時(shí)鐘

    //      3. 使用eflash、qspi時(shí),需要開啟AXIBUS3時(shí)鐘、AXILITEBUS2時(shí)鐘

     

    /* AXIBus3 clock operation Guide*/

    AXIBUS3_CLK_ENABLE();

    AXI4TOAPB0_CLK_ENABLE();

    APBBUS0_CLK_ENABLE();

    AXI4TOAPB1_CLK_ENABLE();

    APBBUS1_CLK_ENABLE();

    AXILITEBUS1_CLK_ENABLE();

    AXILITEBUS2_CLK_ENABLE();

    EFLASH_CLK_ENABLE();   

    PLIC_CLK_ENABLE();

    CLINT_CLK_ENABLE();

     

    SMU_PLLInitTypeDef SMU_PLLInitStruct;

    SMU_ClockInitTypeDef SMU_ClockInitStruct;

   

    /* Set PLL parameters values */

    SMU_PLLInitStruct.OscillatorType = SMU_OSCILLATORTYPE_OSC;

    SMU_PLLInitStruct.FIRCOscState = DISABLE;

    SMU_PLLInitStruct.FIRCCalibrationValue = 0x00;

    SMU_PLLInitStruct.PLLConfig.PLLState = ENABLE;

    SMU_PLLInitStruct.PLLConfig.PLLSource = SMU_PLLCLK_OSC;

    SMU_PLLInitStruct.PLLConfig.PLLDivR = 0x01;

    SMU_PLLInitStruct.PLLConfig.PLLDivQ = 0x01;

    SMU_PLLInitStruct.PLLConfig.PLLDivN = 0x14;

    SMU_PLLInitStruct.PLLConfig.PLLDivF = 0xA0;

    SMU_PLLInit(&SMU_PLLInitStruct); 

     

    /* Ensure that the EFLASH is consistent with the system clock */

    FLASH_UnlockCtrl();

    FLASH_SetCLKFreq(0xA0);

     

    /* Set System Clock parameters values */

    SMU_ClockInitStruct.SYSCLKSelect = SMU_SYSCLK_PLL;

    SMU_ClockInitStruct.AXI4Bus3CLKDiv = AXI4Bus3CLKDiv1;

    SMU_ClockInitStruct.APBBus0CLKDiv = APBBus0CLKDiv1;

    SMU_ClockInitStruct.APBBus1CLKDiv = APBBus1CLKDiv8;

    SMU_ClockInitStruct.CANX2CLKDiv = CANX2CLKDiv1;

   

    SMU_ClockInit(&SMU_ClockInitStruct);

     

    EFLASH_CLK_UPDATE_ENABLE();

    EFLASH_CLK_UPDATE_DISABLE();

 

    FLASH_LockCtrl();

     

    /* Get System Clock values */

    SMU_GetClocksFreq(&SMU_ClocksStruct);

}
  1. GPIO初始化

i. 開始GPIO對應(yīng)時(shí)鐘

ii. 如果是復(fù)用IO,首先要配置復(fù)用

**void** GPIO_Init( **void** )

{

   GPIO_InitTypeDef  GPIO_InitStructure; 

   /*開啟GPIO所在時(shí)鐘*/

   GPIOD_CLK_ENABLE();

   GPIOG_CLK_ENABLE();

   GPIOF_CLK_ENABLE();

   /* Set GPIO multiplex mapping */

   GPIO_PinAFConfig(GPIOD, GPIO_PinSource13, GPIO_AF_CAN1);//先開啟復(fù)用模式

   GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_CAN1);

  

   /* GPIO Configure */

   GPIO_StructInit(&GPIO_InitStructure);

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

   GPIO_InitStructure.GPIO_OType = GPIO_Out_PP;

   GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_9mA;

   

   GPIO_Init(GPIOD, &GPIO_InitStructure);

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;

   GPIO_InitStructure.GPIO_IType = GPIO_IPU;

   GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_9mA;

   GPIO_Init(GPIOD, &GPIO_InitStructure);

    

    /* GPIOB Configure */

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15; 

    GPIO_InitStructure.GPIO_Mode      = GPIO_Mode_OUT;

    GPIO_InitStructure.GPIO_OType     = GPIO_Out_PP;

    GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_9mA;

     

    GPIO_Init(GPIOG, &GPIO_InitStructure); 

   

    /* GPIOB Configure */

    GPIO_InitStructure.GPIO_Pin       = GPIO_Pin_1; 

    GPIO_InitStructure.GPIO_Mode      = GPIO_Mode_IN;

    GPIO_InitStructure.GPIO_IType     = GPIO_IPU;

    GPIO_InitStructure.GPIO_OType     = GPIO_Out_PP;

    GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_9mA;

     

    GPIO_Init(GPIOF, &GPIO_InitStructure);  

}
  1. 部分外設(shè)參數(shù)配置

a) Usart

i. 開啟GPIO和外設(shè)時(shí)鐘

ii. 配置GPIO先配置復(fù)用

iii. 配置外設(shè)參數(shù)

iv. 最后使能外設(shè)

**void** User_Print_Init(uint32_t BaudRate)

{

    USART_InitTypeDef USART_InitStructure;

    GPIO_InitTypeDef  GPIO_InitStructure;

    PLIC_InitTypeDef PLIC_InitStructure;

    /*GOPI/外設(shè)時(shí)鐘使能*/

    GPIOD_CLK_ENABLE();

    USART0_CLK_ENABLE();

    /* Set GPIO multiplex mapping */

    GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_USART0);       /* USART0_TX */ 開啟復(fù)用模式

    GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_USART0);       /* USART0_RX */

    /* GPIO Configure */

    GPIO_InitStructure.GPIO_Pin       = GPIO_Pin_8;             

    GPIO_InitStructure.GPIO_Mode      = GPIO_Mode_OUT;

    GPIO_InitStructure.GPIO_OType     = GPIO_Out_PP;

    GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_4_5mA;

    GPIO_Init(GPIOD, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin       = GPIO_Pin_9;             

    GPIO_InitStructure.GPIO_Mode      = GPIO_Mode_IN;

    GPIO_InitStructure.GPIO_IType     = GPIO_IN_FLOATING;

    GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_4_5mA;

    GPIO_Init(GPIOD, &GPIO_InitStructure);

    /*防止配置沖突*/

    USART_DeInit(USART0);

    USART_StructInit(&USART_InitStructure);

 

    /* Initializes the USART0 */

    USART_InitStructure.USART_BaudRate     = BaudRate;

    USART_InitStructure.USART_WordLength   = USART_WordLength_8b;

    USART_InitStructure.USART_StopBits     = USART_StopBits_1;

    USART_InitStructure.USART_Parity       = USART_Parity_No;

    USART_InitStructure.USART_Mode         = USART_Mode_Rx | USART_Mode_Tx;

    USART_InitStructure.USART_OverSampling = USART_OverSampling_16;

USART_Init(USART0, &USART_InitStructure);

/*配置好相關(guān)參數(shù)后,使能USART*/

    USART_Cmd(USART0, ENABLE);

    USART_ITConfig(USART0, USART_IT_RXNE, ENABLE);

     

     /* Configer the USART0 interrupt */

    PLIC_InitStructure.PLIC_IRQChannel = USART0_IRQn;

    PLIC_InitStructure.PLIC_IRQPriority = 1;

    PLIC_InitStructure.PLIC_IRQChannelCmd = ENABLE;

    PLIC_Init(&PLIC_InitStructure);

}

b) CAN

**void** User_CANFD3_Init()

{

    CANFD3_CLK_ENABLE();

    GPIOC_CLK_ENABLE();

    

    GPIO_InitTypeDef  GPIO_InitStructure;

    CANFD_InitTypeDef CANFD_InitStructure;

    PLIC_InitTypeDef  PLIC_InitStructure;

 

    /* Set GPIO multiplex mapping */

    GPIO_PinAFConfig(GPIOC, GPIO_PinSource7, GPIO_AF_CAN3);

    GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_CAN3);

 

    /* GPIO Configure */

    GPIO_StructInit(&GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

    GPIO_InitStructure.GPIO_OType = GPIO_Out_PP;

    GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_18mA;

     

    GPIO_Init(GPIOC, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;

    GPIO_InitStructure.GPIO_IType = GPIO_IPU;

    GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_18mA;

    GPIO_Init(GPIOC, &GPIO_InitStructure);

     

    /* Initializes the CANFD1 */

    /* Arbitration Phase (Nominal) Baud Rate 500KHz */

    /* Data Phase Baud Rate 2MHz */

    CANFD_StructInit(&CANFD_InitStructure);

    CANFD_InitStructure.CANFD_SRR = CANFD_SRR_RESET;

    CANFD_InitStructure.CANFD_APBRPR = CANFD_APBRPR_10tp;

    CANFD_InitStructure.CANFD_APBTR_APTS1 = CANFD_APBTR_TS1_11tp;

    CANFD_InitStructure.CANFD_APBTR_APTS2 = CANFD_APBTR_TS2_4tp;

    CANFD_InitStructure.CANFD_APBTR_APSJW = CANFD_APBTR_SJW_2tp;

     

    CANFD_InitStructure.CANFD_DPBRPR = CANFD_DPBRPR_2tp;

    CANFD_InitStructure.CANFD_DPBTR_DPTS1 = CANFD_DPBTR_TS1_7tp;

    CANFD_InitStructure.CANFD_DPBTR_DPTS2 = CANFD_DPBTR_TS2_2tp;

    CANFD_InitStructure.CANFD_DPBTR_DPSJW = CANFD_DPBTR_SJW_2tp;

    CANFD_Init(CANFD3, &CANFD_InitStructure);

         

    /* CANFD receive filter configure */

    CANFD_FilterInit(CANFD3, TB0, 0xFFE00000, 0X62E00000);        

 

    CANFD_AutoRetransConfig(CANFD3,ENABLE);

    /* Enable new message received interrupt */

    CANFD_ITConfig(CANFD3, CANFD_IT_ERXOK, ENABLE);

    /* CANFD Enable */

    CANFD_Enable(CANFD3);

     

    PLIC_StructInit(&PLIC_InitStructure);

 

    /* Configer the CANFD1 interrupt */

    PLIC_InitStructure.PLIC_IRQChannel = CANFD3_IRQn;

    PLIC_InitStructure.PLIC_IRQPriority = 2;

    PLIC_InitStructure.PLIC_IRQChannelCmd = ENABLE;

    PLIC_Init(&PLIC_InitStructure);

    CANFD_ClearITPendingBit(CANFD3, CANFD_CLEAR_ALL);

}

通過遵循"參數(shù)配置在先,外設(shè)使能在后"的原則,并采用結(jié)構(gòu)化初始化流程,可以顯著提高M(jìn)CU系統(tǒng)的穩(wěn)定性和可靠性。

審核編輯 黃宇

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

    關(guān)注

    147

    文章

    18934

    瀏覽量

    398538
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1869

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    我們在做一個(gè)支持多廠商 MCU 的圖形配置工具,難點(diǎn)卻不在工具本身

    這三年里我們一直在做一件事: 把 MCU 工程的初始化配置做成圖形 并且支持多個(gè) MCU 原廠、多個(gè)內(nèi)核 很多工程師第一反應(yīng)會(huì)想到 STM
    的頭像 發(fā)表于 03-02 10:13 ?116次閱讀
    我們在做一個(gè)支持多廠商 <b class='flag-5'>MCU</b> 的圖形<b class='flag-5'>化</b><b class='flag-5'>配置</b>工具,難點(diǎn)卻不在工具本身

    PC強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制(一):C#的EtherCAT總線初始化(下)

    通過使用配置工具導(dǎo)出ZAR文件進(jìn)行EtherCAT總線初始化
    的頭像 發(fā)表于 02-05 10:00 ?1034次閱讀
    PC強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制(一):C#的EtherCAT總線<b class='flag-5'>初始化</b>(下)

    國民技術(shù)發(fā)布N32Cube芯片配置初始化代碼生成工具

    1月30日,國民技術(shù)(NSING)正式發(fā)布N32Cube——芯片配置初始化代碼生成工具,讓時(shí)鐘、引腳與外設(shè)配置一目了然、輕松上手!
    的頭像 發(fā)表于 02-02 15:26 ?586次閱讀
    國民技術(shù)發(fā)布N32Cube芯片<b class='flag-5'>配置</b>與<b class='flag-5'>初始化</b>代碼生成工具

    MCU工程初始化,到底該不該交給工具?

    背景 工程初始化重復(fù)性高,但出錯(cuò)成本大。工程師常問:交給工具是不是會(huì)丟失掌控? 工具可做的事 時(shí)鐘樹、引腳復(fù)用、外設(shè)配置 工程生成、代碼模板套用 參數(shù)校驗(yàn)和約束檢查 工程師仍需做的事
    的頭像 發(fā)表于 01-29 10:18 ?147次閱讀
    <b class='flag-5'>MCU</b>工程<b class='flag-5'>初始化</b>,到底該不該交給工具?

    掌握 LuatIO:GPIO 復(fù)用模式初始化配置全流程解析

    在使用 LuatIO 進(jìn)行嵌入式應(yīng)用開發(fā)時(shí),合理配置 GPIO 的復(fù)用功能是實(shí)現(xiàn)外設(shè)控制的前提。本文全面解析 GPIO 引腳由普通 IO 轉(zhuǎn)換為復(fù)用功能引腳的初始化流程,包括時(shí)鐘使
    的頭像 發(fā)表于 01-23 15:28 ?1217次閱讀
    掌握 LuatIO:GPIO 復(fù)用模式<b class='flag-5'>初始化</b><b class='flag-5'>配置</b>全流程解析

    ADC轉(zhuǎn)換完成后MCU如何初始化串口?

    ADC轉(zhuǎn)換完成后, MCU如何初始化串口?
    發(fā)表于 12-24 06:53

    EtherCAT總線初始化步驟

    的關(guān)鍵環(huán)節(jié),涉及硬件配置、軟件設(shè)置以及網(wǎng)絡(luò)拓?fù)涞慕?。以下是EtherCAT總線初始化的詳細(xì)步驟,結(jié)合實(shí)際應(yīng)用場景和常見問題解決方案,為工程師提供系統(tǒng)的操作指南。 1. 硬件連接與物理層檢查
    的頭像 發(fā)表于 12-22 10:10 ?600次閱讀
    EtherCAT總線<b class='flag-5'>初始化</b>步驟

    串口通信基石:Air8000下Modbus RTU串口初始化詳解!

    串口初始化是Modbus RTU通信穩(wěn)定可靠的關(guān)鍵起點(diǎn)。本篇深入剖析Air8000開發(fā)板串口參數(shù)配置、初始化代碼實(shí)現(xiàn)及調(diào)試要點(diǎn),結(jié)合master_rtu示例,分享實(shí)際操作中的經(jīng)驗(yàn)與避坑
    的頭像 發(fā)表于 10-28 16:33 ?1660次閱讀
    串口通信基石:Air8000下Modbus RTU串口<b class='flag-5'>初始化</b>詳解!

    GraniStudio:IO初始化以及IO資源配置例程

    1.文件運(yùn)行 導(dǎo)入工程 雙擊運(yùn)行桌面GraniStudio.exe。 通過引導(dǎo)界面導(dǎo)入IO初始化以及IO資源配置例程,點(diǎn)擊導(dǎo)入按鈕。 打開IO初始化以及IO資源配置例程所在路徑,選中I
    的頭像 發(fā)表于 08-22 17:34 ?940次閱讀
    GraniStudio:IO<b class='flag-5'>初始化</b>以及IO資源<b class='flag-5'>配置</b>例程

    GraniStudio:初始化例程

    1.文件運(yùn)行 導(dǎo)入工程 雙擊運(yùn)行桌面GraniStudio.exe。 通過引導(dǎo)界面導(dǎo)入初始化例程,點(diǎn)擊導(dǎo)入按鈕。 打開初始化例程所在路徑,選中初始化.gsp文件,點(diǎn)擊打開,完成導(dǎo)入。 2.功能
    的頭像 發(fā)表于 08-22 16:45 ?915次閱讀
    GraniStudio:<b class='flag-5'>初始化</b>例程

    定義IO初始化結(jié)構(gòu)體

    由上述IOPORT相關(guān)功能的枚舉類型我們可以知道,在對IOPORT模塊進(jìn)行初始化時(shí)需要根據(jù)情況配置它們。因此我們定義一個(gè)IOPORT初始化的結(jié)構(gòu)體類型IOPORT_Init_t,它的成員包括了由上述所有枚舉類型所聲明的變量,因此
    的頭像 發(fā)表于 07-16 16:26 ?1427次閱讀

    IM 系列設(shè)備過載保護(hù)機(jī)制下界面初始化中斷的底層邏輯與解決方案

    一、過載保護(hù)機(jī)制與界面初始化的關(guān)聯(lián)基礎(chǔ) IM 系列設(shè)備的過載保護(hù)機(jī)制是保障設(shè)備安全運(yùn)行的核心功能,其通過傳感器實(shí)時(shí)采集設(shè)備運(yùn)行參數(shù),如電流、電壓、溫度、系統(tǒng)資源占用率等。一旦這些參數(shù)超出預(yù)設(shè)閾值
    的頭像 發(fā)表于 06-27 09:58 ?556次閱讀

    stm32cubumx使用1.28.0固件包無法初始化fsmc怎么解決?

    在使用CUBEMX配置fsmc驅(qū)動(dòng)norflash時(shí),勾選寫使選項(xiàng),在初始化fsmc函數(shù)中,程序會(huì)進(jìn)入void Error_Handler(void)導(dǎo)致死機(jī),而這個(gè)情況在1.25.
    發(fā)表于 06-10 07:42

    stm32cubumx使用1.28.0固件包無法初始化fsmc怎么解決?

    在使用CUBEMX配置fsmc驅(qū)動(dòng)norflash時(shí),勾選寫使選項(xiàng),在初始化fsmc函數(shù)中,程序會(huì)進(jìn)入void Error_Handler(void)導(dǎo)致死機(jī),而這個(gè)情況在1.25.
    發(fā)表于 06-06 07:16

    stm32cubumx使用1.28.0固件包無法初始化fsmc怎么解決?

    在使用CUBEMX配置fsmc驅(qū)動(dòng)norflash時(shí),勾選寫使選項(xiàng),在初始化fsmc函數(shù)中,程序會(huì)進(jìn)入void Error_Handler(void)導(dǎo)致死機(jī),而這個(gè)情況在1.25.
    發(fā)表于 04-27 08:15