hungchieh1029 发表于 2017-12-16 22:57:28

STM32F105/107 CubeMX USB 無法辨識

各位先進,

我現在用CubeMX產生出來的USB HID的範例程式

CubeMX的設定 USB Device Only / Activate _SOF 沒有勾選 / Activate _VBUS 沒有勾選

固件下載到STM32F105/107,接上電腦,USB都是顯示無法辨識

請問一下設定上面是有什麼不對嗎?

hungchieh1029 发表于 2017-12-16 23:37:26

本帖最后由 hungchieh1029 于 2017-12-16 23:39 编辑

C:\1.jpg

我再將CUBEMX的設定上傳,請參考

衔胆栖冰 发表于 2017-12-17 21:14:39

设备类型和时钟都选择对了吗?

maxtch 发表于 2017-12-17 21:55:36

本帖最后由 maxtch 于 2017-12-17 22:01 编辑

1. 时钟树对不对?USB 外设需要 48MHz 时钟,且精度要求高,必须通过晶振 PLL 产生。2. USB DP 1.5k 上拉电阻打开了没?F107 这个电阻应该是内置的,如果有外接需要拆掉。没有这个电阻告诉电脑设备已插入,电脑上是不会有反应的。
3. 代码里面有没有及时响应 USB 事件?相应的中断开了吗?USB 消息定时很严,最好是中断驱动免得误了响应时间。
4. USB 设备描述符对不对?如果电脑不能理解这个设备描述符自然不能响应。
5. 如果是 USB HID,报告描述符对不对?

hungchieh1029 发表于 2017-12-17 23:07:21

衔胆栖冰你好,

你給的圖片設定,我都有設定好,謝謝你給的建議

hungchieh1029 发表于 2017-12-17 23:26:43

本帖最后由 hungchieh1029 于 2017-12-17 23:35 编辑

maxtch你好,

1. 我是用晶振8MHz , SYSCLK= 72MHz , USBCLK = 48MHz
2. USB DP 我沒有接1.5K上拉電阻,但是PA9(VBUS) 我有接上10K的上拉電阻
3. 代碼的部分我都是用stm32CubeMx來產生的,產生出來代碼,沒有做任何的修改就直接
    編譯,燒錄至F107
4. stm32CubeMX是原廠提供的,描述元應該不至於會錯
5. stm32CubeMx產生出 CDC / DFU / HID / Mass 等範例都遇到一樣的問題USB無法使用

6. 另外我又有用 "STM32F10x and STM32L1xx USB Full Speed Device Library" 它裡面也有
   CDC / DFU / HID / Mass 等範例又都可以用,這樣我就不懂stm32CubeMx產生出來的代
   碼差到哪裡?
我付上stm32CubeMx的代碼

maxtch 发表于 2017-12-18 01:26:37

hungchieh1029 发表于 2017-12-17 23:26
maxtch你好,

1. 我是用晶振8MHz , SYSCLK= 72MHz , USBCLK = 48MHz


1. 如果这样的话,时钟树是没有问题了。
2. DP 没有上拉就没有问题,VBUS 无所谓。

至于剩下几个问题,我只能说你恐怕发现了一个 Cube 的 bug。(我个人自从上次被 Cube 咬过之后就再也没有碰过 ST 提供的库,设备头文件除外,大多数外设直接手写驱动,而 USB 之类都使用了第三方的开源库。)

五哥1 发表于 2017-12-18 01:37:02

楼主,建议用25M的晶振,重新设下时钟树。

五哥1 发表于 2017-12-18 01:39:00

DP的上拉电阻一定要有

hungchieh1029 发表于 2017-12-19 10:41:39

我應該找到原因了,

STM32的OTG_FS系列,有PA9的部分也是VBUS

在STM32CUBEMX,Pinout的頁面中沒宣告PA9就會是VBUS,

所以只要宣告PA9為其他的設定
我就將UART1設定宣告在PA9 / PA10之後
這樣在重新編譯代碼,USB列舉就會正常了
页: [1] 2
查看完整版本: STM32F105/107 CubeMX USB 無法辨識