STM32 USB軟體移植注意事項 及硬體接線注意
移植了個自定義HID USB程式到STM32開發板上,成功執行,但是最近自己做的板子上(用的是F103C8T6)就不行,死活沒有反應。經過幾番除錯終於發現問題,以下做個小結:
1.一定要保證USB時鐘是48MHZ;
使用PLL作系統時鐘SCLK;而USB時鐘只能是SCLK的1分頻或者1.5分頻,要得到48MHZ的USB時鐘,則SCLK只能為48MHZ或者72MHZ;由於我是用的內部晶振8MHZ,PLL時鐘最大是8MHZ Div2 再倍頻16 也就是最大隻能到64MHZ,所以只能配成48MHZ才能滿足要求;如果使用外部晶振,PLL可以直接倍頻HSE 而不用Div2;
2.注意中斷向量名稱;
由於我使用的是Keil 裡面ST的例程來移植的,裡面用的啟動檔案是stm32f10x_vector.s,對應USB的中斷向量如下:
而我自己的啟動檔案是startup_stm32f10x_md.s,對應的USB中斷向量如下:
所以寫中斷函式的時候,名字一定要改成與啟動檔案裡的一致:
3.硬體接線也需要特別注意:
USB的D+,D-,對應DP,DM,一定要記得在D+上接一個上拉電阻,通過IO口去控制上拉,直接接上拉的話理論上也是可以的,因為host端是根據D+是否上拉來識別是否有裝置插入的。
相關推薦
STM32 USB軟體移植注意事項 及硬體接線注意
移植了個自定義HID USB程式到STM32開發板上,成功執行,但是最近自己做的板子上(用的是F103C8T6)就不行,死活沒有反應。經過幾番除錯終於發現問題,以下做個小結: 1.一定要保證USB時鐘是48MHZ; 使用PLL作系統時鐘SCLK;而USB時鐘只能是SCLK的1
關於 UsageStatsManager.queryUsageStats 的注意事項及 UsageStatsService 的簡單原理
問題背景: 目前需求統計應用的當天使用情況,在 5.0 以上有許可權 android.permission.PACKAGE_USAGE_STATS,獲取到該許可權後可以通過 UsageStatsManager.queryUsageStats(int intervalType, lon
vue元件通訊--注意事項及經驗總結
元件間的通訊是是實際開發中非常常用的一環,如何使用對專案整體設計、開發、規範都有很實際的的作用,我在專案開發中對此深有體會,總結下vue元件間通訊的幾種方式,討論下各自的使用場景 文章對相關場景預覽 父->子元件間的資料傳遞 子->父元件間的資料傳遞
softmax函式注意事項及程式碼實現
import numpy as np def softmax(x): """ softmax function """ # assert(len(x.shape) > 1, "dimension must be larger than 1") # print
Cloudera Manager 6.0.1 安裝注意事項及細節
此篇基本與官方文件一致,細節不一樣的地方會標註 我的環境: server1 192.168.1.201 4核 8G 120G(固態) server2 192.168.1.202 4核 8G 120G+500G(固態) server3 192.168.1.203 4核 8G 120G+500G(
移動端網頁佈局注意事項及解決
1.winphone系統a、input標籤被點選時產生的半透明灰色背景怎麼去掉<meta name="msapplication-tap-highlight" content="no">1、關閉iOS鍵盤首字母自動大寫<input type="text" a
序列化的一些注意事項及建議
本文來自《改善java的151個建議》 建議11:養成良好習慣,顯示宣告UID 我們先寫一個序列化與反序列化的工具類SerilizationUtils public class SerializationUtils { private static Strin
Google Cloud Speech API 呼叫注意事項及呼叫方式__.Net版2
在上一章已詳細說明如何讀取本地音訊檔案,呼叫GoogleCloudSpeech API轉換為文字。從中可以看出,對音訊檔案的播放長度嚴格地限制在60s以內。對此限制,Google採用將音訊檔案上傳到Cloud Storage的Bucket中,然後進行文字轉換,大
申請付費蘋果開發者賬號 注意事項及流程 (轉)
一、基礎知識 蘋果開發者賬號分為 個人(individual),公司(company),企業(enterprise)三種類型。個人賬號只能有一個開發者,公司賬號允許多個開發者協作開發,企業賬號其App只能用於內部員工使用,是無法對外公開的。所以,通常情況下大家都是選擇個
scanf函式總結:注意事項及例程
一、scanf函式小結 1>scanf函式的說明及其注意事 scanf函式說明: a. 如果使用這個函式,要包含一個頭檔案 stdio.h。 b.scanf函式是一個阻塞式函式:函式執行後,會等待使用者的輸入,如果使用者不輸入任何內容,它會一直等待。 scanf函式的作用:
華為上機考試注意事項及程式設計技巧(精品)
華為機試主要考察對程式語言的運用和簡單的演算法設計,雖說真金不怕火煉,但一些細小的問題可能會浪費很多時間,這在機試過程中是致命的,因此總結一下在機試中的一些注意事項。 1、時間安排。華為機試一共兩個小時,題量為三道題,如果將難度按照星等來劃分的話大體可分為兩種模式,第一種為一星或二星、三星、五星,第二種為二
VMware tools for linux 安裝注意事項及常見問題解決!
一直以來,安裝VMware tools問題會遇到這樣或那樣的問題,特別是共享資料夾找不到的問題。有時候在一臺電腦上搭建好了一個環境,過了很長時間買了新電腦又想搭建一個環境時,又會遇到問題。現在我把主要幾個可能遇到的問題的解決方法說明一下: 我主要裝過Fedora 13 和
Google Cloud Speech API 呼叫注意事項及呼叫方式__.Net版1
引言 現階段,語音自動識別功能已趨於完善,對與大部分使用者來說,能說能聽足矣!在說聽的同時還能看,豈不美哉?對此,Google提供了語音轉為文字的應用——Cloud Speech API。本文將從使用該API的前提條件,注意事項,在.net開發環境下實現從本地
SOLARIS 10 安裝ORACLE 10g rac 注意事項及準備工作
1.建立使用者與屬主 mkdir /oracle chmod -R 777 /oracle groupadd -g 100 oinstall groupadd -g 101 dba useradd -u 200 -g oinstall -G dba -s /usr/bin/
stm32 usb host移植
1 拷貝相關檔案 st網站提供檔案庫 2 設定USB時間表48MHz System_stm32f10x.c RCC->CFGR2配置時鐘 3 設定USB時鐘入口 Tim2中斷 4 設定USB中斷 5 OK .... 執行OK
談談JavaScript陣列使用注意事項及踩過的坑,排序問題,for in遍歷問題等
JavaScript中陣列的使用還是比較廣發的,尤其與伺服器互動的時候,返回結果多半有陣列集合,本文探討JavaScript中陣列使用的一些注意事項及踩過的坑彙總。 1、認識陣列 JavaScript中陣列本質上是物件Object,那麼陣列0, 1, 2索引位置
iOS開發:2017 蘋果APP上架更新應用版本注意事項及APP版本迭代步驟方法
前幾天蘋果剛出臺新的政策協議,警告禁止使用APP熱更新,然後就收到蘋果發的警告郵件,然後並沒有在意,直到今天需要更新之前上架應用版本,才發現了問題。如果你的開發者賬號已經同意了蘋果開發者官網的最新協議
mysql許可權和使用注意事項及mysql 資料型別詳解和innodb,myisam區別
mysql使用者許可權管理(Grant,Revoke) MySQL可以為不同的使用者分配嚴格的、複雜的許可權。這些操作大多都可以用SQL 指令Grant(分配許可權)和Revoke(回收許可權)來實現。 Grant可以把指定的權 限分配給特定的使用者,如果這個使用者不存在
elasticsearch本地叢集搭建及遠端伺服器搭建注意事項及kibana配置
elasticsearch本地叢集 首先下載解壓elasticsearch壓縮包,我使用的版本為elasticsearch-6.3.2-2,解壓後的路徑為E:\elasticsearch-6.3.2-2。 在解壓目錄下有config資料夾,裡面有elastics
【Azure Redis 快取 Azure Cache For Redis】Azure Redis由低級別(C)升級到高級別(P)的步驟和注意事項, 及對使用者現有應用的潛在影響,是否需要停機時間視窗,以及這個時間視窗需要多少的預估問題
問題描述 由於Azure Redis的效能在不同級別表現不同,當需要升級/縮放Redis的時候,從使用者的角度: 需要知道有那些步驟? 注意事項? 潛在影響? 停機事件視窗? 升級預估時間? 解決方案 從使用的步驟出發,升級的步驟為: 1)Azure門戶頁面操作 選擇縮放(Scale)目