www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]本文將針對STML152的IAP移植過程作一個筆記。首先得下載AN3310的示例代碼,地址為:http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard

本文將針對STML152的IAP移植過程作一個筆記。

首先得下載AN3310的示例代碼,地址為:http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries-expansions/stsw-stm32075.html

下載完成后,我們需要做些修改,我們將在NUCLEO-L152RE板子上進行驗證測試。

由于NUCLEO-L152RE板子默認MCU是沒有外掛晶振的,但可以通過ByPass方式使用ST-LInk的8M晶振,但這里只是作為IAP,且只需要使用到串口,因此可以只使用HSI,于是,在AN3310的工程中打開system_stm32l1xx.c文件找到SystemInit函數(shù),注釋掉//SetSysClock();,讓系統(tǒng)使用默認的HSI即可。


voidSystemInit(void)

{

/*!

RCC->CR|=(uint32_t)0x00000100;

/*!

RCC->CFGR&=(uint32_t)0x88FFC00C;

/*!

RCC->CR&=(uint32_t)0xEEFEFFFE;

/*!

RCC->CR&=(uint32_t)0xFFFBFFFF;

/*!

RCC->CFGR&=(uint32_t)0xFF02FFFF;

/*!

RCC->CIR=0x00000000;

#ifdefDATA_IN_ExtSRAM

SystemInit_ExtMemCtl();

#endif/*DATA_IN_ExtSRAM*/

/*ConfiguretheSystemclockfrequency,AHB/APBxprescalersandFlashsettings*/

//SetSysClock();

#ifdefVECT_TAB_SRAM

SCB->VTOR=SRAM_BASE|VECT_TAB_OFFSET;/*VectorTableRelocationinInternalSRAM.*/

#else

SCB->VTOR=FLASH_BASE|VECT_TAB_OFFSET;/*VectorTableRelocationinInternalFLASH.*/

#endif

}

然后修改man.c文件中的main函數(shù),注釋掉一些按鍵,讓程序默認進入到升級模式:


intmain(void)

{

/*UnlocktheFlashProgramErasecontroller*/

FLASH_If_Init();

/*InitializeKeyButtonmountedonSTM32L15xx-EVALboard*/

//STM_EVAL_PBInit(BUTTON_KEY,BUTTON_MODE_GPIO);

/*TestifKeypush-buttononSTM32L15xx-EVALBoardispressed*/

//if(STM_EVAL_PBGetState(BUTTON_KEY)!=0x00)

{

/*ExecutetheIAPdriverinordertoreprogramtheFlash*/

IAP_Init();

/*Displaymainmenu*/

Main_Menu();

}

#if0

/*Keeptheuserapplicationrunning*/

else

{

/*Testifusercodeisprogrammedstartingfromaddress"APPLICATION_ADDRESS"*/

if(((*(__IOuint32_t*)APPLICATION_ADDRESS)&0x2FFE0000)==0x20000000)

{

/*Jumptouserapplication*/

JumpAddress=*(__IOuint32_t*)(APPLICATION_ADDRESS+4);

Jump_To_Application=(pFunction)JumpAddress;

/*Initializeuserapplication'sStackPointer*/

__set_MSP(*(__IOuint32_t*)APPLICATION_ADDRESS);

Jump_To_Application();

}

}

#endif

while(1)

{}

}


由于NUCLEO板子默認使用的是USART2,因此需要修改使用的串口:


voidIAP_Init(void)

{

USART_InitTypeDefUSART_InitStructure;

/*USARTresourcesconfiguration(Clock,GPIOpinsandUSARTregisters)----*/

/*USARTconfiguredasfollow:

-BaudRate=115200baud

-WordLength=8Bits

-OneStopBit

-Noparity

-Hardwareflowcontroldisabled(RTSandCTSsignals)

-Receiveandtransmitenabled

*/

USART_InitStructure.USART_BaudRate=115200;

USART_InitStructure.USART_WordLength=USART_WordLength_8b;

USART_InitStructure.USART_StopBits=USART_StopBits_1;

USART_InitStructure.USART_Parity=USART_Parity_No;

USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;

//STM_EVAL_COMInit(COM2,&USART_InitStructure);

USART2_Init(&USART_InitStructure);

}


USART2_Init()函數(shù)為新添加的串口初始化函數(shù),其定義如下:


voidUSART2_Init(USART_InitTypeDef*USART_InitStruct)

{

GPIO_InitTypeDefGPIO_InitStructure;

/*EnableGPIOclock*/

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);

/*EnableUARTclock*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);

/*ConnectPXxtoUSARTx_Tx*/

GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_USART2);

/*ConnectPXxtoUSARTx_Rx*/

GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_USART2);

/*ConfigureUSARTTxasalternatefunctionpush-pull*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_40MHz;

GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;

GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;

GPIO_Init(GPIOA,&GPIO_InitStructure);

/*ConfigureUSARTRxasalternatefunctionpush-pull*/

//GPIO_InitStructure.GPIO_Pin=COM_RX_PIN[COM];

//GPIO_Init(COM_RX_PORT[COM],&GPIO_InitStructure);

/*USARTconfiguration*/

USART_Init(USART2,USART_InitStruct);

/*EnableUSART*/

USART_Cmd(USART2,ENABLE);

}


接下來需要修改程序中使用到的打印函數(shù):


voidSerialPutChar(uint8_tc)

{

USART_SendData(USART2,c);

while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET)

{

}

}



uint32_tSerialKeyPressed(uint8_t*key)

{

if(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)!=RESET)

{

*key=(uint8_t)USART2->DR;

return1;

}

else

{

return0;

}

}


基本上就移植好了,編譯燒錄進NUCLEO板中運行。


接下來需要找一個PC端軟件超級

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

Sept. 10, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《全球電動車逆變器市場數(shù)據(jù)》,2025年第二季受惠純電動車(BEV)銷售成長,全球電動車(注1)牽引逆變器裝機量達766萬臺,年增19%。...

關(guān)鍵字: 增程式電動車 SiC 牽引逆變器

Sept. 8, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NVIDIA(英偉達) Blackwell平臺規(guī)?;鲐?,以及北美CSP業(yè)者持續(xù)擴大布局General Server(通用型...

關(guān)鍵字: SSD DDR4 服務(wù)器

Sept. 4, 2025 ---- Apple(蘋果)即將發(fā)布iPhone 17、iPhone 17 Air(暫名)、iPhone 17 Pro及Pro Max四款旗艦新機,除了外觀辨識度升級,處理器性能、散熱和拍攝功...

關(guān)鍵字: iPhone 16 A19處理器 折疊機

Sept. 3, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《2025近眼顯示市場趨勢與技術(shù)分析》報告,2025年隨著國際品牌陸續(xù)推出AR眼鏡原型,以及Meta預(yù)計在近期發(fā)布AR眼鏡Celeste,市...

關(guān)鍵字: AR眼鏡 OLED

Sept. 2, 2025 ---- TrendForce集邦咨詢表示,2025年第二季DRAM產(chǎn)業(yè)因一般型DRAM (Conventional DRAM)合約價上漲、出貨量顯著增長,加上HBM出貨規(guī)模擴張,整體營收為3...

關(guān)鍵字: DRAM 智能手機 ASP

Sept. 1, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季因中國市場消費補貼引發(fā)的提前備貨效應(yīng),以及下半年智能手機、筆電/PC、Server新品所需帶動,整體晶圓代工產(chǎn)能利用率與出貨...

關(guān)鍵字: 晶圓代工 智能手機 筆電

Aug. 28, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NAND Flash產(chǎn)業(yè)雖面臨平均銷售價格(ASP)小幅下滑,所幸原廠減產(chǎn)策略緩解供需失衡,疊加中、美兩大市場政策推動,整體...

關(guān)鍵字: NAND Flash SSD AI

Aug. 26, 2025 ---- NVIDIA(英偉達)近日推出的Jetson Thor被視為機器人的物理智慧核心,以Blackwell GPU、128 GB記憶體堆疊出2070 FP4 TFLOPS AI算力,是前...

關(guān)鍵字: 機器人 大型語言模型 AI算力

Aug. 21, 2025 ---- 根據(jù)TrendForce集邦咨詢最新液冷產(chǎn)業(yè)研究,隨著NVIDIA GB200 NVL72機柜式服務(wù)器于2025年放量出貨,云端業(yè)者加速升級AI數(shù)據(jù)中心架構(gòu),促使液冷技術(shù)從早期試點邁...

關(guān)鍵字: AI 數(shù)據(jù)中心 服務(wù)器

除了充電電路外,鋰電池的放電過程也需要保護。鋰電池的放電電壓不能低于3.0V,否則電池壽命會大幅縮短。為了實現(xiàn)這一保護,工程師們設(shè)計了DW01芯片與8205 MOS管的電路組合。DW01芯片能夠監(jiān)控鋰電池的放電電壓和電流...

關(guān)鍵字: 鋰電池 電池
關(guān)閉