我用的是神州三號開發板子,板子的usb模組原理圖為:
配置埠g的11號引腳為usb的使能引腳,按理來說應該是開漏輸出的(看了很多的修改**都是這個模式),不過就是不能使能usb,只能配置成推挽的才行,不知道為什麼,不知道有沒有人知道這個,求解答?
gpio_initstructure.gpio_pin =usb_disconnect_pin;由於是普通的推挽輸出,所以只有輸出高電平才能使能usb,所以使能usb的函式應該修改為:gpio_initstructure.gpio_speed =gpio_speed_50mhz;
gpio_initstructure.gpio_mode = gpio_mode_out_pp; //
是普通的推挽輸出,而不是開漏輸出
gpio_init(usb_disconnect, &gpio_initstructure);
void這個問題讓我明白了,只有很好的看電路圖,才能理解和找出很的問題。usb_cable_config (functionalstate newstate)
具體其它的修改看以參考這篇文章,把程式下到板子後就可以看到pc上提示開始安裝驅動程式了,說明我們的usb裝置可以被pc檢測到了。
STM32F10X的USB韌體庫說明
最底層 1 usb int.c,本檔案包含兩個中斷服務函式ctr lp 和ctr hp 在接收傳送中斷時使用這兩個函式進行處理,這兩個函式又呼叫各個usb端點處理函式,端點處理函式由使用者自定義。2 usb regs.c,本檔案時硬體抽象層。它含有各種用於讀取或設定usb暫存器的函式,相當於對暫存器...
USART的韌體庫程式設計
注 所有的函式宣告需要在標頭檔案中 void usart config void unsigned char usart sendchar usart typedef usartx,unsigned char ucchar void usart sendbyte usart typedef usar...
STM韌體庫中assert param的作用
在學習stm32庫函式過程中,筆者遇到大量的assert param語句。經查明,assert param的作用就是用來判斷傳遞給函式的引數是否是有效值。以下是從韌體庫中複製貼上的 void rcc apb2periphclockcmd uint32 t rcc apb2periph,functio...