你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【Nucleo STM32F767ZI】 STM32CubeMX + USB_DEVICE 大容量U盘教程 精华  

[复制链接]
mark0668 提问时间:2016-10-17 20:37 /








【Nucleo STM32F767ZI】 STM32CubeMX + USB_DEVICE 大容量U盘教程

手把手教你使用CUBE 软件生成USB_DEVICE 大容量U盘 工程,用到的软件版本 (STM32CubeMX 4.17),(HAL 库1.5.0),,,,(KEIL 5.20).


1.jpg

1.选择开发板型号F767

2.jpg

2.选择外部晶振.

3.jpg

3.选择USB    DEVICE_Only.

4.jpg

4.选择外部晶振为时钟源.USB必须为48M时钟.

5.jpg

5.选择USB 大容量存储设备.
6.jpg

6.框里面的选项全部关闭,你也可以根据自己的需求设置.我这就选全关闭的了.

7.jpg

7.为每个外设都分配一个*.H,*.C  这样方便管理外设.

8.jpg

8.自定义个工程名称,再选择开发环境,我我使用的 MDK KEIL V5,最后很重要设置堆栈大小一定要加大点,默认的太小了.设好就点击生成工程.

9.jpg

9.生成工程后就打开工程
#define STORAGE_BLK_NBR                  0x10000  //多少个扇区
#define STORAGE_BLK_SIZ                  0x200       //扇区大小

0x10000 * 0x200 = 32MB
这文件里面有U盘的API函接接口,根据自己的接口移植就可以了.


10.jpg

10.main 源码默认的.编绎工程下载程序.
11.jpg

11.下载程序后运行,插入USB会提示正在安装驱动,安装完会跳出让你格式化U盘.这里显示32MB 是正确的,能认出这就大功告成了,剩下的自己移植读写等等的API函数就可以了.



STM32F767_MSC.rar

下载

3.13 MB, 下载次数: 527, 下载积分: ST金币 -1

评分

参与人数 1 ST金币 +10 收起 理由
zero99 + 10

查看全部评分

收藏 11 评论36 发布时间:2016-10-17 20:37

举报

36个回答
kylongmu 回答时间:2016-10-18 20:49:12
void StartDefaultTask(void const * argument)
{
  /* init code for USB_DEVICE */
  MX_USB_DEVICE_Init();

  /* USER CODE BEGIN 5 */
  USBD_Interface_fops_FS.Init();
  USBD_Interface_fops_FS.Receive(rec_buf,&rec_len);
  /* Infinite loop */
  for(;;)
  {
    osDelay(1000);
        HAL_GPIO_TogglePin(GPIOB,LD2_Pin);
        //if(USBD_Interface_fops_FS.Receive(rec_buf,&rec_len)==USBD_OK)
                CDC_Transmit_FS(rec_buf,rec_len);
        //else
                //CDC_Transmit_FS(send_buf,sizeof(send_buf));
  }
  /* USER CODE END 5 */
}
用USB的虚拟串口模式发送数据,主机已经能收到,就是用CDC_Transmit_FS函数,但是接收没搞定,不知道接收如何调用,我线程里面调用接收怎么都收不到数据。
kylongmu 回答时间:2016-10-18 23:06:47
kylongmu 回答时间:2016-10-17 21:25:41
明白了,谢谢啊,不过我仍然有些对Keil与CubeMX的关系有些混乱,keil里面可以调用CubeMX来配置,但是很多头文件与库的关系就乱了。如果是CubeMX来生产keil的工程,本身没有问题,但是却不能再在里面用Keil调用CubeMX配置,这样就成了死循环了。
mark0668 回答时间:2016-10-17 20:39:25
占沙发了.
kylongmu 回答时间:2016-10-17 21:30:22
另外配置为Virtual Port com是用usb口模拟一个串口吗?
我按这个配置编译下载后计算机不会找到新的串口设备。
mark0668 回答时间:2016-10-17 21:50:51
kylongmu 发表于 2016-10-17 21:25
明白了,谢谢啊,不过我仍然有些对Keil与CubeMX的关系有些混乱,keil里面可以调用CubeMX来配置,但是很多头 ...

CUBE只是帮你生成初始化代码,需要修改什么可以再次用CUBE来生成.
mark0668 回答时间:2016-10-17 21:51:09
kylongmu 发表于 2016-10-17 21:25
明白了,谢谢啊,不过我仍然有些对Keil与CubeMX的关系有些混乱,keil里面可以调用CubeMX来配置,但是很多头 ...

CUBE只是帮你生成初始化代码,需要修改什么可以再次用CUBE来生成.
mark0668 回答时间:2016-10-17 21:51:35
kylongmu 发表于 2016-10-17 21:25
明白了,谢谢啊,不过我仍然有些对Keil与CubeMX的关系有些混乱,keil里面可以调用CubeMX来配置,但是很多头 ...

CUBE只是帮你生成初始化代码,需要修改什么可以再次用CUBE来生成.
mark0668 回答时间:2016-10-17 21:53:06
kylongmu 发表于 2016-10-17 21:30
另外配置为Virtual Port com是用usb口模拟一个串口吗?
我按这个配置编译下载后计算机不会找到新的串口设备 ...

这个需要安装驱动
kylongmu 回答时间:2016-10-17 21:57:40
mark0668 发表于 2016-10-17 21:53
这个需要安装驱动

找到说明,装了驱动了,http://www.st.com/content/st_com ... /stsw-stm32102.html
但是找到的设备是: com_1.jpg
不是预期的显示STM

Paderboy 回答时间:2016-10-17 22:23:45
多谢分享。。。学习了
zengyi703-16313 回答时间:2016-10-18 08:12:03
谢楼主分享
zero99 回答时间:2016-10-18 08:40:03
支持一下
高二毛 回答时间:2016-10-18 08:50:44
感谢分享,学习了。
zbber 回答时间:2016-10-18 11:22:37
淡定,淡定,淡定……
ynwscfsfi 回答时间:2016-10-18 12:54:37
多谢分享。。。学习了
123下一页

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版