当前位置:首页 > 文章中心 > 正文内容

原创:打造最简STM32F0 USB开发板

dgx6667个月前 (05-16)文章中心27

想学STM32,不知道从哪开始的有木有? 想学ARM单片机,嫌买开发板、调试器费钱的有木有? 买了STM32开发板没有资料不会玩,放在那里吃灰的有木有? 买了开发板,照着例子跑通了几个程序,依然一头雾水的有木有?

我cruelfox是个非常抠门的人,搞DIY也省得很——一切从简。(太复杂了的搞不定

,软件硬件都是如此) 所以正在玩的STM32也简化到底了,有兴趣的看看吧。

这是刚完成的STM32F072 USB开发板,使用48脚LQFP的STM32F072C8T6,也可以使用其它封装兼容的带USB型号,甚至是M3系的STM32F103C8T6这种。上半年从论坛买了块STM32F091 Nucleo, 但是不带USB,所以为了学习USB自己做一块咯。下面是电路图,除了一片1117 3.3V LDO,外围器件少到极致了吧,晶振不用的话是可以不装的。板子可以直接通过 USB mini口供电。外围引出的插针有一路 SPI, 一路 I2S, 一路 UART, 一路 I2C, 一路 8-bit GPIO, 一路 UART/I2C共用,以及几个零星的GPIO。这些已方便开发简单的USB设备了。

PCB layout 示意图

好,STM32F072 10块钱以内就可以搞定,整个开发板成本很低了吧。 如果你有ST-Link, 或者是带有ST-Link的STM32 Discovery/Nucleo开发板,用SWD调试线连上就可以下载程序了。如果没有ST-Link, 还可以从串口下载程序,只需要把BOOT0跳线接上即可,因为STM32内带了Bootloader. 如果连串口线都没有?呵呵,要是像F072这样带USB的,还可以从USB直接下载,别的硬件也省了,怎么样,够简吧?

OK,来写第一个测试程序:定时控制LED闪烁。

  1. #include "stm32f0xx.h"

  2. int main(void)

  3. {

  4. RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // enable GPIO port A & B clock

  5. GPIOA->MODER = GPIO_MODER_MODER8_0; // PA8 as general output (LED)

  6. RCC->APB1ENR |= RCC_APB1ENR_TIM6EN; // enable basic timer 6

  7. TIM6->PSC = 9999; // prescaler

  8. TIM6->ARR = 399; // auto reload value

  9. TIM6->CR1 = TIM_CR1_URS|TIM_CR1_CEN; // start counter

  10. while(1)

  11. {

  12. static char a=0;

  13. if(TIM6->SR & TIM_SR_UIF) // check if overflow

  14. {

  15. TIM6->SR &= ~TIM_SR_UIF; // clear flag

  16. if(a==0)

  17. {

  18. GPIOA->BSRR = (1<<8);

  19. a=1;

  20. }

  21. else

  22. {

  23. GPIOA->BRR = (1<<8);

  24. a=0;

  25. }

  26. }

  27. }

  28. }

复制代码

上面这个程序所做的事情,先是初始化GPIO, 设置PA8为输出口(板子上连了一个LED),然后是设置定时器Timer 6, 这是一个自动重装的计数器,我把它调到0.5秒中溢出一次。在下面的循环里面,就是检测溢出标志,然后切换LED的亮和灭状态。学过C语言的,都应该看得懂;至于RCC, GPIOA, TIM6 这几个结构指针的定义,都在#include的头文件里面,这是和硬件相关的,具体请查阅"RM0091
STM32F0x1/STM32F0x2/STM32F0x8 Reference Manual"编程手册。

如何编译上面这个 C 程序,且听下回分解。这里暂且假定编译成功了,得到一个 HEX 文件,也就是要烧写的二进制代码。

如果你是使用KEIL, IAR等集成开发环境,那么用自带的烧写工具就可以进行写入了。如果是像我cruelfox这样追求精简,仅使用GCC命令行工具的,就需要再找下载程序用的软件了。

如果是使用ST-Link,可以使用ST自己的STVP (Visual Programmer),这个东东在ST网站上可以下载到,不过是包含在九十兆左右的一个大包"ST Toolset"里面。(下载URL
http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF210568 )这个软件的界面是这个样子的:

主菜单上面 Erase, Program, Verify, Read 功能很明了了,File-->Open可以加载HEX文件。第一次运行STVP的时候,要选择ST-LINK调试器,和 SWD接口。

如果没有ST-Link, 使用串口下载的话,需要"Flash Loader Demostrator"软件,这个也可以从ST网站直接下载(URL
http://www.st.com/st-web-ui/static/active/en/st_prod_software_internet/resource/technical/software/demo_and_example/stsw-mcu005.zip)。下载前要把BOOT0跳线接上,使STM32进入Bootloader模式,USART1连接到PC的串口(我用的是FT232RL USB转串口),把MCU加电。运行软件,界面是这样的:

选择串口,然后点"Next",如果成功连上了,则界面变成下面这样

点"Next"继续

这时已显示出识别出的STM32型号,点"Next"到下一步进行具体的操作。

OK, 下载HEX,擦除,上载(读Flash内容) 功能都一看就明白了吧。

第三种下载方式,从USB,需要ST的"DFUSe Demo"软件,也是从ST网站下载的(URL
http://www.st.com/st-web-ui/static/active/en/st_prod_software_internet/resource/technical/software/demo_and_example/stsw-stm32080.zip)。也需要把BOOT0跳线接上,还必须连接USB口,然后PC提示找到了新硬件。安装好驱动以后,再启动软件,界面如下:

不过现在不能把HEX文件直接写入,而需要先生成dfu文件,使用一起安装得到的"DFU File Manager"程序,从HEX生成dfu.

至于 VID, PID 我还是保留和原来的一致,不然得重新安装驱动(为什么要使用DFU文件我还没理解清楚)。得到dfu文件就可以用上面的软件烧写了。

怎么样,我cruelfox的开发板够精简吧? 二楼帖子会我会跟贴讲解怎么编译程序,上面的程序是怎么被STM32运行的。

六楼帖子里面,我分享我的第一个USB工程,mass storage 虚拟存储盘.

原文链接:
http://bbs.eeworld.com.cn/thread-477740-1-1.html

以上图文内容均是EEWORLD论坛网友原创,在此感谢。

欢迎微博@EEWORLD

如果你也写过此类原创干货请关注微信公众号:EEWORLD(电子工程世界)回复“投稿”,也可将你的原创发至:bbs_service@eeworld.com.cn,一经入选,我们将帮你登上头条!

与更多行业内网友进行交流请登陆EEWORLD论坛。

扫描二维码推送至手机访问。

版权声明:本文由第六芝士网发布,如需转载请注明出处。

本文链接:http://www.dgx666.com/post/1666.html

分享给朋友:

“原创:打造最简STM32F0 USB开发板” 的相关文章

CAD安装哪个版本好?今天让我来告诉你

CAD安装那个版本比较好一直以来是困扰大家的一个问题,今天我们就来对CAD安装那个版本比较好做一个深入的讲解!现在的CAD版本多且杂,从比较常见的版本来看(再早的我们就不在这里过多叙述),从2000到现在最新的2022,每个版本都有相当大的用户群体,每个人都有自己选择CAD版本的理由,但是大体可以分...

高版本CAD没有经典模式怎么办?6步就能把CAD界面设置回经典模式

在设计行业工作时间比较长的同志,他们都用过比较老版本的CAD软件,老版本的CAD软件的经典工作界面,很多老设计师都非常熟悉。但随着时代更替,CAD软件的工作界面发生了很大变化。从2CAD010版开始,一直到现在CAD都是用新界面。CAD2010到CAD2014都保留了经典模式,但CAD2015版本开...

cad安装完成,某些产品无法安装

安装CAD的时候,出现安装完成,某些产品无法安装的情况。主要原因是由于系统本身的组件未达到软件所需的要求导致,所以我们要做的是重新补装所需组件。1、找到安装包以下路径:AutoCAD_2014\3rdParty\NET\4\wcu\dotNetFramework(注意,这里是安装目录,具体路径取决于...

T20天正暖通CADV8.0(2022)软件安装及使用教程

↓↓↓↓ 点击获取T20天正暖通软件V8.0体验地址软件下载(免费更新各种办公软件,记得关注喔)T20天正暖通软件V8.0支持Win7 32位AUTOCAD 2010-2016,Win7/10 64位AUTOCAD 2010-2022平台,是一款全新的专业化、智能化的暖通设计软件。软件符合《民用建筑...

WIN10系统安装低版本CAD(如2006.2007)时出现错误的解决办法

很多同学在WIN10系统下安装低版本CAD(如2006.2007)时会出现各种问题,比如提示“许可系统出现错误”“没有足够的权限安装本产品”“写入文件时发生错误”等,导入CAD无法正常安装或打开。所以老师结合多年的教学经验整理了非常全面的几种解决办法,希望能帮助各位同学解决困惑(WIN10系统与低版...

爱学不学:AutoCAD 2007放样制作三维吊钩

本教程介绍AutoCAD 2007放样制作三维吊钩,本教程以起重机吊钩的三维制作过程为例,介绍放样时应注意的问题,以及放样工具和使用技巧,希望朋友们喜欢本教程!autocad 2007版以后有了放样这一工具,给变截面的三维件制作带来很大方便。但在放样时如果操作不当,就会出现截面类型不对、路径无效等无...