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

【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, 下载次数: 526, 下载积分: 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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版