欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32_BOOTLOADER下載引導代碼
[打印本頁]
作者:
王永亮
時間:
2017-11-7 09:41
標題:
STM32_BOOTLOADER下載引導代碼
為了調試下載方便,個人整理了一份IAP_BOOT下載引導代碼。在
STM32F1
03上使用。
下載波特率可以設置2MHz的速度,下載程序超級快,使用341 USB轉串口已經在使用。
(1),IAP_BOOT使用STM32串口下載軟件下載到STM32芯片里。
(2),進入燒寫條件
1、第一燒寫,應用程序為空,自動進入程序下載狀態。
2,上電PA2管腳判斷進入。
3,應用程序跳轉進入。(思維為向內存寫人某個值,然后軟件復位,boot檢測內存值)
單片機源程序如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "stmflash.h"
#include "iap.h"
#include "key.h"
int main(void)
{
u16 oldcount=0; //老的串口接收數據值
u16 applenth=0; //接收到的app代碼長度
char ready = 0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
delay_init(168); //初始化延時函數
// USART3_Init(115200); //初始化串口波特率為460800
USART6_Init(115200);
// KEY_Init();
while(1)
{
if(ready == 0)
{
printf("等待接收bin文件......\n");
ready = 1;
}
if(USART_RX_CNT)
{
delay_ms(10);
if(oldcount==USART_RX_CNT)//新周期內,沒有收到任何數據,認為本次數據接收完成.
{
applenth=USART_RX_CNT;
oldcount=0;
USART_RX_CNT=0;
printf("用戶程序接收完成!\r\n");
printf("代碼長度:%dBytes\r\n",applenth);
if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判斷是否為0X08XXXXXX.
{
printf("開始更新固件...\r\n");
iap_write_appbin(FLASH_APP1_ADDR,USART_RX_BUF,applenth);//更新FLASH代碼
printf("固件更新完成!\r\n");
if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//判斷是否為0X08XXXXXX.
{
while(KEY == 0)
{
iap_load_app(FLASH_APP1_ADDR);//執行FLASH APP代碼
}
}
else
printf("非FLASH應用程序,無法執行!\r\n");
}
else
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
IAP_Bootloader.rar
(3.75 MB, 下載次數: 130)
2017-11-7 09:40 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
cnbli
時間:
2018-8-4 08:44
謝謝,不知道可不可以用
作者:
大漠落日
時間:
2024-2-1 22:57
先下載,謝謝分享
作者:
大漠落日
時間:
2024-2-2 08:36
研究學習中,先謝謝啦!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1