STM32 USB的DFU功能
最近用到USB,後來發現了STM32F103可以程式實現DFU,在網上搜到程式碼對比官方檔案發現是大容量FLASH的DFU,我用的是STM32F103C8T6,屬於中容量。自己對著官方例程修改了網友的程式碼,改成中容量後可以使用DFU更新韌體。修改過程中要注意幾點
1.在庫函式“void SystemInit (void)”結尾處新增向量表偏移量,開全域性中斷(在dfu中關閉了中斷,在此處開啟)。如下圖
2.修改MDK app程式偏移量,如下圖:(預留了20K FLASH給USB DFU使用,所以APP程式碼起始地址0x8005000)
3.APP修改完成後,需要在DFU程式碼中修改APP跳轉地址,如下圖:
修改完成後,使用官方的“DfuSe_Demo_V3.0_Setup.exe”軟體下載即可。
應用環境:下位機-STM32F103C8T6
DFU程式碼長度16K
APP程式碼長度27K(基於USB-HID類的髮卡器)
上位機-win7 旗艦版64位
DfuSe_Demo_V3.0_Setup.exe
相關推薦
STM32第二功能引腳對映
STM32部分外設的第二功能引腳對映 作者:JCY 時間:2012年12月11日 STM32F是ST(意法半導體公司)的產品,本晶片的設計支援了晶片上部分外設第二功能的引腳對映。這為設計STM32的電路板提供了方面,大大簡化了電路的設計。當第一次看到AFIO功能的時候感到很困惑,一直不理解,但是最近突然明
STM32 的ITM、DWT功能實現
rec span input div mce keil file color 事件 I.STM32 DWT時間戳功能實現 1.m3、m4實測可用。 2.精度:1/內核頻率(s)。 3.實現流程: a.先使能DWT外設,由內核調試寄存器DEM_CR的位24
STM32-通用定時器基本定時功能
數字 vision 實現 定義 還要 可能 輸出 給定 禁止 1. STM32的Timer簡介 STM32中一共有11個定時器,其中2個高級控制定時器,4個普通定時器和2個基本定時器,以及2個看門狗定時器和1個系統嘀嗒定時器。其中系統嘀嗒定時器是前文中所描述的Sys
stm32-FSMC的作用與功能
檢測 .com 結構 圖片 spa font 訪問 信號 要求 FSMC的定義:靈活的靜態存儲器控制器。 FSMC的主要作用: 將AHB傳輸信號轉換到適到的外設協議; 滿足訪問外部設備對時序的要求; FSMC的主要功能: ● 具有靜態存儲器接口的
stm32 開發中startup.s文件中常見的命令功能
only port main函數 聲明 字符 字數 strong 操作 ali 由於C的普及以及編譯器的發展,越來越多的軟件工程師在編程時很少有機會接觸到匯編語言。在ARM的開發中,我們不可避免的會遇到啟動文件的編寫,在KEIL環境中一般采用了startup.s的文件作為啟
STM32 USB的DFU功能
最近用到USB,後來發現了STM32F103可以程式實現DFU,在網上搜到程式碼對比官方檔案發現是大容量FLASH的DFU,我用的是STM32F103C8T6,屬於中容量。自己對著官方例程修改了網友的程式碼,改成中容量後可以使用DFU更新韌體。修改過程中要注意幾點 1.在庫函式“void S
STM32的重對映功能,以ZET6的TIM3_CH2通道從PA7->PB5為例
還需要先提的是,重對映有的可能只適用於與部分STM32晶片。 TIM3_CH2 預設是接在 PA7,可以通過重對映功能,把 TIM3_CH2對映到 PB5 上 重對映控制是由複用重對映和除錯 IO 配置暫存器(AFIO_MAPR) 控制。 TIM3_REMA
STM32實現IAP功能的學習筆記
最近因專案需求要實現STM32的線上升級即IAP功能,先將這幾天的學習體會和IAP的具體實現總結出來,分享給大家,希望對同樣實現IAP的童鞋有所幫助,文中最後會上傳名為STM32_Update.zip的壓縮檔案裡面包含了STM32_App、STM32_MyBoot_V1.0和升級軟體STM32_Up
STM32的IAP功能應用
背景 在做的那個路燈專案,協議裡面有個線上遠端升級功能,而且由於交付工期態趕,我們並不能在工期前完全實現好全部協議內容,只能有針對性地去實現幾個功能,然後剩下功能區遠端升級,這個遠端是通過onenet按照一定幀格式來下發bin檔案來做到的。 IAP簡介 IAP :在編程式設計
STM32(9) GPIO口複用功能實現(正點原子) QQ群860099671
一個GPIO口可以 複用成內部外設的功能引腳,這裡我們利用PA9\PA10設定為UART1來舉例。 IO口對應的複用功能需要查表來確定。這個表在晶片手冊 下面這個圖講解了GPIO口的複用原理 上圖右邊左圖是複用器(AFRL(31:0)、AFRH(31:0)),要
STM32 keyboard USB HID鍵盤功能的實現
相關文章 下面編寫下USB鍵盤的程式,依然在CustomHID工程上修改。 依舊最先修改的是usb_desc.c檔案。我們從裝置描述符開始講述。 裝置描述符需要修改下bMaxPacketSize(最大包長度)域為0x08,因為被本次的工程最大通訊長度
STM32的GPIO的複用功能和重對映功能
1、複用功能:內建外設是與I/O口共用引出管腳(不同的功能對應同一管腳) STM32 所有內建外設的外部引腳都是與標準GPIO引腳複用的,如果有多個複用功能模組對應同一個引腳,只能使能其中之一,其它模組保持非使能狀態。 2、重對映功能:複用功能的引出腳可以通過重對映,
STM32之時鐘輸出功能
很多時候,我們想讓ARM發出固定頻率的脈衝,作為另一個晶片的時鐘時,有兩個方法一個是定時器或者時鐘輸出功能,利用定時器輸出會吃中斷源並且不利於發出高頻率脈衝,所以選擇第二個方法對應時鐘源的時鐘,並且可以進行分頻之後再輸出。 STM32F4手冊說明: 時鐘輸出功能 共有兩個微控制器時鐘輸出 (MC
STM32的複用時鐘的開啟和重對映功能
IO口的複用 最近在學習STM32,在BZ上一篇關於的串列埠通訊文章裡有這麼一段程式碼: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE); 當初是參考開發的例子寫的,一直
stm32的LCD螢幕顯示+各個模組功能除錯
從PWM輸出實驗的工程開始,加入其他各種功能。 LCD螢幕顯示: 一、hardware 其中timer是產生脈衝的。 二、hallib FMC是一個介面,控制SDRAM和LCD 三、#include #include "lcd.h"
STM32-如何使用引腳複用功能輸出PWM
#define LED0_PWM_VAL TIM3->CCR2 //比較暫存器(TIM3通道2),可以調節PWM佔空比, int main(void) { u16 led0pwmval=0;u8 dir=1; Stm32_Clock_Init(9); //系統時
STM32 USB Virtual COM USB轉串列埠的功能實現
/* USB標準裝置描述符*/ constuint8_tVirtual_Com_Port_DeviceDescriptor[VIRTUAL_COM_PORT_SIZ_DEVICE_DESC]= { 0x12,/*bLength:長度,裝置描述符的長度為18位元組*/ USB_DEVICE_DESC
STM32通用定時器的基本定時器功能實現燈閃爍
/*MAIN.C*/ /* Includes ------------------------------------------------------------------*/#inclu
STM32 通用定時器的輸出PWM功能 學習筆記
首先來說,你要使用PWM模式你得先選擇用哪個定時器來輸出PWM吧!除了TIM6、TIM7這兩個普通的定時器無法輸出PWM外,其餘的定時器都可以輸出PWM,每個通用定時器可以輸出4路PWM,高階定時器TIM1、TIM8每個可輸出7路PWM。選好定時器及通道後,下一步就是要使能
STM32 (3) GPIO口功能講解 GPIO 口輸入輸出 暫存器配置 群號860099671
講解GPIO操作原理,使用各種型號的STM32 開啟官方的《STM32中文參考手冊》8.1 8.2小節 GPIO功能描述 我們今天重點要分析的是下圖 上圖是100腳的STM32微控制器 1. GPIO是包含引腳的 2. 如何找GPIO功能: