一、錯誤背景
1、大背景:對STM32進行DFU功能開發
1.1 硬件背景:
STM32F103C8T6(其他型號應該是類似的),下面簡寫爲32
1.2軟件背景:
1.2.1 在ST官網下載的最新版DfuSe Demo(v3.0.6),這個是dfu下載的軟件。
1.2.2 keil5程序開發軟件
二、出現時機
向32中下載自己編寫好的程序,打開DfuSe軟件,使用usb線連接PC與32,之後就出現了下面這個錯誤界面。
三、產生錯誤的原因
經查資料發現了下面這一句話至關重要:
大概意思是必須得通過添加接口的可選設置的字符串來指出你有多少內存,哪些可寫哪些只讀。這個是我忽略掉的,我想當然地認爲不就是一個字符串嗎,沒想到有這麼大用處關於@Internal FLash …的含義小五也是摘取出來了,放在下面。
就這樣,原因找到了,怎麼解決呢!!!
四、解決方案
在usb描述符配置中添加這樣一個字符串就可以解決了,下面貼出小五的字符串
當然,由於連帶責任,你還需要去多修改幾個細節問題,
比如
1、在配置描述符中可選設置描述符中的字符串索引。
2、在配置文件usb_prop中有字符串集合,類似String_Descriptor[ ]。
3、配置文件usb_prop中的獲取字符串的函數GetStringDescriptor中的if判斷語句。
4、其他相關的變量聲明,函數聲明等細節
五、編譯下載
是不是成功了,沒有成功就多檢查一下吧,一般就是這裏的問題了。
成功界面將顯示出剛纔配置的內存。
雙擊它可以查看具體的配置信息。需要注意的是配置內存不要超出芯片的最大範圍。
六、都看到這裏了點個贊吧
既然都點讚了,小五蒐集的DFU相關資料就送你了。微信掃碼搜索DFU。