5446|1

2945

帖子

4

TA的资源

五彩晶圆(中级)

楼主
 

【 ST NUCLEO-H743ZI测评】(5)USB转串口 [复制链接]

今天发现了一个帖子STM32H743 nucleo won't work in USB OTG FS该文章中有一个资料包 STM32H743_USBCDC。按照资料中的提示终于完成了测试。本实验中的设备是由ST公司提供,特此感谢!详细资料请访问官方网址
在前几次的USB实验中都没有成功,不管怎么设置就发现不了USB设备。在这期间找了很多资料。也没有发现是硬件问题还是设置问题。下载到资料包后。就将资料中的项目进行了编译,下载启动板子终于看到串口设备了。通过查看资料发现问题所在。原来是MX_USB_DEVICE_Init()函数中的一个BUG,只要在程序中加入HAL_PWREx_EnableUSBVoltageDetector();函数就可以自举了。

  1. void MX_USB_DEVICE_Init(void)
  2. {
  3.   /* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */
  4.   
  5.   /* USER CODE END USB_DEVICE_Init_PreTreatment */
  6.   
  7.   /* Init Device Library, add supported class and start the library. */
  8.   if (USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK)
  9.   {
  10.     Error_Handler();
  11.   }
  12.   if (USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK)
  13.   {
  14.     Error_Handler();
  15.   }
  16.   if (USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK)
  17.   {
  18.     Error_Handler();
  19.   }
  20.   if (USBD_Start(&hUsbDeviceFS) != USBD_OK)
  21.   {
  22.     Error_Handler();
  23.   }
  24.   /* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */
  25.    HAL_PWREx_EnableUSBVoltageDetector();
  26.   /* USER CODE END USB_DEVICE_Init_PostTreatment */
  27. }
复制代码

下面就将这一过程简单叙述一下。
首先在STM32cubeMX中设置USB设备。


将USB设备设置成USB_OTG_FS类型。启用VBUS功能。检查一下对应的管脚是不是与原理图一致。且设置成High模式。


在Middleware中设置USB的高级设备类型为CDC设备。USB设置过程就算完成。
对于CDC类型的USB设备,需要更大的内存堆栈。


将内存堆栈修改为0x700这一设置基本就完成了。生成代码。在MX_USB_DEVICE_Init()函数加入HAL_PWREx_EnableUSBVoltageDetector();函数。编译下载测试。
可以发现在设备中USB转换的串口设备。


总结:由于不是十分的熟悉STM32在测试中很难发现这种系统级的BUG。通过这次测试对ST公司的产品有了更进一步的认识。



此内容由EEWORLD论坛网友bigbat原创,如需转载或用于商业用途需征得作者同意并注明出处
此帖出自stm32/stm8论坛

最新回复

解决问题的能力很强,我在开发的时候有时候一个小小的问题可能会卡四五个小时,让人崩溃   详情 回复 发表于 2020-9-26 22:16
点赞 关注
 

回复
举报

23

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

解决问题的能力很强,我在开发的时候有时候一个小小的问题可能会卡四五个小时,让人崩溃

此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表