[原创] 【晒心得】(一)初识,ARM小白使用ST公司32F0308DISCOVERY学习Cortex-M0心得

wangfuchong   2013-12-10 01:41 楼主
首先感谢EEWorld!能够以低价格购买到这款开发板。记得好像我还因为忘了时间导致有点拍迟了点,管理员还是让我买了一块。咳咳,大家不要产生意见吆,我也能算是在论坛有点点资历了(帖子数量上算是不少了吧?),我估计也应该不是抢了大家团购的机会吧,估计是多余的之类,反正是我有点情面嘛,当然还得感谢论坛啰。
因为精力能力有限,本来是准备囤货的,放着以后很可能会用,再说万一用不到,嘿嘿,不怕转不出去吧只要时间不太久。看到广告意法半导体公司的Cortex-M0 MCU仅仅32美分价格呀!即使经销商零售也不会贵到哪儿去吧,所以是要准备的。所以买来后一直放着没动。后来正做午饭呢,接到网站管理员电话(论坛不少都接到了电话好像),问试用情况以及能不能晒晒心得。汗呀,我还没插电呢。唉,我一听到女性的声音就受不了了,吃完饭睡午觉之前就翻了出来。后来找活动的帖子,似乎没翻到,记得以前好像有个什么叫晒心得的帖子呀,以为时间已经过了,也就不着急了,以后写一篇吧。今天整理邮电,发现了以前收到的邮件(虽然看过),里面有链接,打开一看,竟然是最后期限是昨天,早知道赶在昨天写一个哪怕再简单也当作感谢啦。不过也一样,时间过了不参加比赛照样可以发帖嘛,再说本来也没能力参加比赛的,ARM这方面没什么经验。
ST公司2013年7月发布的全新STM32F030价值线微控制器Discovery套件,提供体验价格低至32美分的32位Cortex-M0 MCU性能。
STM32F0308 Discovery开发板是一个可负担(批量订货单价8.90美元)、易于使用的开发工具包,让设计人员能快速进行评估,并开始发展STM32F030价值线微控制器。出厂预载配置,以准备开箱使用。以USB插座或独立电源供电,工具包带有扩展插座,允许快速连接到单片机的所有I/O。板载64针STM32F030R8T6微控制器,具有64KB闪存和8KB RAM。
全新STM32F030超值系列基于48MHz的ARM Cortex-M0处理器内核。与同类竞争产品不同,STM32F030是低预算项目的理想选择。STM32F030虽然只有8位微控制器的价格,但性能和特性并没有受到任何影响,如没有降低内核速度,同样保持丰富的外设数量和种类。
除了支持ARM Cortex-M系列设备的低成本发现套件和通用工具外,STM32F030价值线微控制器亦有完全免费的开发工具链支援。
先晒晒收到的STM32F0308 Discovery照片:

image001.jpg

这是拆开的,还有一块洞洞板呢,洞洞板上的插座是我后来焊上去的。可以在洞洞板上搭建自己的外围电路,把开发评估板插上去就可以开发自己的软硬件啦。当然开发评估板本身也可以进行一些功能演示的啰。
首先到官方网站下载一些资料看看
都下载下来看看吧
其中UM1677:Getting started with STM32F030 Value Line Discovery development tools
STM32F0308-DISCO schematics
STM32F030 Value line discovery firmware package (UM1677)
要首先看看吆
网上找到一个说明图片:

image003.jpg

看过一些文档,现在通电看看收到的东东是否正常
步骤可按照包装背面。详细说明在下载的getting started文档中能找到。
1.         确认一下JP2跟CN2上的短路帽是否插上。
2.         连接板子上的CN1到PC的USB接口,接上后:
            红色LED LD1(PWR)亮,这是电源指示灯。
            红色/绿色LED LD2(COM)慢速红色闪烁,这是串口指示灯。(如果驱动已经安装,则为红色常亮)
            绿色LED LD3 闪烁。
3.         按一下左下角的B1按钮。
4.         观察每按一下B1按钮后,绿色LED LD3的变化情况。(闪烁 -> 快速闪烁 -> 停止)
5.         每次B1按钮按下时,蓝色LED LD4会亮起一小段时间。
6.                        按一下右下角按键B2则目标板块复位。
OK!,现象正常!目标板块部分演示也正常!
下面还要试试评估板上的ST-Link V2正常不正常呀,这个得下载调试一个程序。
解压上面提到的官网下载的demo软件包:STM32F030 Value line discovery firmware package (UM1677)
目录结构如下:
STM32F0308-DISCOVERY_FW_V1.0.1
├─Libraries
│  ├─CMSIS
│  │  ├─Device
│  │  │  └─ST
│  │  │      └─STM32F0xx
│  │  │          ├─Include
│  │  │          └─Source
│  │  │              └─Templates
│  │  │                  ├─arm
│  │  │                  ├─gcc_ride7
│  │  │                  ├─iar
│  │  │                  ├─TASKING
│  │  │                  └─TrueSTUDIO
│  │  ├─Documentation
│  │  │  ├─Core
│  │  │  │  └─html
│  │  │  │      └─search
│  │  │  ├─General
│  │  │  │  └─html
│  │  │  ├─RTOS
│  │  │  │  └─html
│  │  │  │      └─search
│  │  │  └─SVD
│  │  │      └─html
│  │  ├─Include
│  │  ├─RTOS
│  │  └─SVD
│  └─STM32F0xx_StdPeriph_Driver
│      ├─inc
│      └─src
├─Projects
│  ├─Demonstration
│  │  ├─Binary
│  │  ├─EWARM
│  │  ├─MDK-ARM
│  │  │  └─STM32F0308_Discovery
│  │  └─TrueSTUDIO
│  │      ├─.metadata
│  │      └─STM32F0308_Discovery
│  │          └─.settings
│  ├─Master_Workspace
│  │  ├─EWARM
│  │  └─MDK-ARM
│  └─Peripheral_Examples
│      ├─ADC_DMA
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─ADC_DMA
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─ADC_DMA
│      │          └─.settings
│      ├─ADC_LowPower
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─ADC_LowPower
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─ADC_LowPower
│      │          └─.settings
│      ├─DMA_FLASH_RAM
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─DMA_FLASH_RAM
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─DMA_FLASH_RAM
│      │          └─.settings
│      ├─EXTI
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─EXTI
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─EXTI
│      │          └─.settings
│      ├─Flash_Program
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─Flash_Program
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─Flash_Program
│      │          └─.settings
│      ├─IO_Toggle
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─IO_Toggle
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─IO_Toggle
│      │          └─.settings
│      ├─IWDG_Reset
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─IWDG_Reset
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─IWDG_Reset
│      │          └─.settings
│      ├─NVIC_WFI_Mode
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─NVIC_WFI_Mode
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─NVIC_WFI_Mode
│      │          └─.settings
│      ├─PWR_CurrentConsumption
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─PWR_CurrentConsumption
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─PWR_CurrentConsumption
│      │          └─.settings
│      ├─PWR_STANDBY
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─PWR_STANDBY
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─PWR_STANDBY
│      │          └─.settings
│      ├─PWR_STOP
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─PWR_STOP
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─PWR_STOP
│      │          └─.settings
│      ├─RCC
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─RCC
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─RCC
│      │          └─.settings
│      ├─Systick
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─SysTick
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─SysTick
│      │          └─.settings
│      ├─TIM_ADC_Trigger
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─TIM_ADC_Trigger
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─TIM_ADC_Trigger
│      │          └─.settings
│      ├─TIM_Complementary_signals
│      │  ├─EWARM
│      │  ├─MDK-ARM
│      │  │  └─TIM_Complementary_signals
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─TIM_Complementary_signals
│      │          └─.settings
│      ├─TIM_PWM_Output
│      │  ├─EWARM
│      │  ├─MDK-AR
M
│ sdcd     │  │  └─TIM_PWM_Output
│      │  └─TrueSTUDIO
│      │      ├─.metadata
│      │      └─TIM_PWM_Output
│      │          └─.settings
│      └─TIM_TimeBase
│          ├─EWARM
│          ├─MDK-ARM
│          │  └─TIM_TimeBase
│          └─TrueSTUDIO
│              ├─.metadata
│              └─TIM_TimeBase
│                  └─.settings
├─Utilities
│  └─STM32F0308-Discovery
└─_htmresc
├─Projects
│  ├─Demonstration
目录下就是板载demo工程文件了。
在Projects\ Master_Workspace文件夹下还有外设例程的工程文件夹,分为两种开发工具的,MDK-ARM和EWARM,用用MDK-ARM吧。以前装有4.7版本的,其实应该也能用起来虽然可能没有F03X系列芯片支持,但是估计也有办法。不过还是换成最新的吧,再说听说也有和谐办法(这个大家去网上搜索有没有啰)。
安装完MDK-ARM,打开Projects\ Master_Workspace\ Master_Workspace\ MDK-ARM下的工程文件,如图:

image004.jpg

先选个简单的试试吧。
将IO_Toggle设为活动工程(鼠标右击)。
点击工具栏rebuild按钮或者按F7键编译链接。
下面就应该是下载调试演示了。不过我们好像还没有安装ST-Link/V2的驱动呢。不知道其它windows版本情况,我的是win8.1,需要手动安装,在设备管理器里有个未识别设备STM32 STLink。
对于win8或者win8.1的驱动安装,大家一定要注意要设置强制禁止驱动签名,具体办法可以网上搜索。对于win8.1可以参照论坛的这个帖子:https://bbs.eeworld.com.cn/thread-418641-1-5.html
在KEIL安装目录X:\Keil\ARM\STLink\USBDriver下驱动安装文件,但是我在win8.1下安装好像不是很正常,安装过后在设备管理器里更新驱动程序还是提示找不到某某文件,这个时候大家可以在上面提到的帖子中下载驱动安装软件,解压到一个文件夹中,其中除了和KEIL安装目录X:\Keil\ARM\STLink\USBDriver下同样的exe文件外还有.inf文件,所以在设备管理器中更新驱动的时候浏览到解压的这个目录就可以了。不过我最终不是用这个,我是到官网下载的另外一个文件,下载地址:http://www.st.com/web/cn/catalog/tools/PF259459,下载解压后更新驱动程序时浏览到相应目录即可,不用安装exe文件好像。而且,两种方法在电脑设备管理器中显示的设备类型位置不一样,不过应该都管用,不知道有何区别。
在我的电脑中显示如图:

image005.jpg

好了,在KEIL软件中按Ctrl+F5开始debug session调试。
可是提示如图错误:

image006.jpg

需要进行以下设置:
点击菜单“project”—“Options for Target ‘IO-Toggle’”或者直接按ALT+F7,出现对话框如图:

image007.jpg

点击Settings,出现如图:

image008.jpg

点击Add,如图选择STM32F0xx 64kB Flash,继续点击Add添加到上图列表框中点击确定--OK完成。

捕获.JPG

现在就可以下载调试了,在调试界面中点击Run工具按钮或者直接按F5键执行程序。
可以在评估板上看到绿色LED LD3和蓝色LED LD4都是浅亮,用示波器查看PC8和PC9引脚应该看到toggle波形(一定恒定频率方波)。
好了,至此,说明我收到的32F0308DISCOVERY套件是完好的!
本文仅用来认识一下32F0308DISCOVERY套件,不作原理性叙述。
下一篇将试试自己的小程序。
2013.12.


[ 本帖最后由 wangfuchong 于 2013-12-10 01:50 编辑 ]

回复评论 (12)

本文演示视频:

[media]http://www.tudou.com/v/ZoueOcxXkNk/&rpid=87541207&resourceId=87541207_04_05_99/v.swf[/media]
点赞  2013-12-10 01:53
晒得好仔细
点赞  2013-12-10 22:50
我志愿加入eeworld,拥护eeworld的纲领,遵守eeworld的章程,履行会员义务,执行eeworld的决定,严守eeworld的纪律,保守eeworld的秘密,对eeworld忠诚,积极工作,为E金币奋斗终身,随时准备为E金币牺牲一切,永不停歇。
www.ctdisk.com/u/1283024 个人书库,持续更新中。
点赞  2013-12-11 12:04
引用: 原帖由 osoon2008 于 2013-12-11 12:04 发表
我志愿加入eeworld,拥护eeworld的纲领,遵守eeworld的章程,履行会员义务,执行eeworld的决定,严守eeworld的纪律,保守eeworld的秘密,对eeworld忠诚,积极工作,为E金币奋斗终身,随时准备为E金币牺牲一切,永不停 ...


尽量写些有些作用的吧
点赞  2013-12-11 15:32
前辈你好,
我想问一下,就你个人感受来讲MDK-ARM和EWARM开发平台,你的选择理由是什么
RTEMS
点赞  2013-12-11 16:39

回复 6楼54chenjq 的帖子

个人觉 得看你原来用的是啥
点赞  2013-12-11 17:20
楼主我还是觉得价格不吸引我到是哪个F429I彩屏吸引我呀 还有188兆的速度,,,,今天看了下NXP才出的MO+M4也不错只是没用过,,,,谢谢楼主分析M0,来个sensortag的心得吧
点赞  2013-12-11 20:22

体会

额和楼主一样有幸得到了M0核的STM32-DISCOVERY 评估板,惭愧我是第一次接触STM32的系列的芯片,网上找了很多相关的资料,虽然都是M3的和的,但大同小异,现在尝试打通串口
点赞  2013-12-12 15:38

回复 5楼wangfuchong 的帖子

从51到430, 再到cortexMx, 有点腻了!
www.ctdisk.com/u/1283024 个人书库,持续更新中。
点赞  2013-12-12 19:01
我是初次接触STM32F0308DISCO的系列的芯片,网上找了很多相关的资料,虽然都是M3的和的,但大同小异,但是现在我还是不会用
点赞  2015-7-30 16:41
真详细!感谢分享
点赞  2015-7-31 15:19
不错不错,很经典的板子,当时入门时鼓捣过一阵子挺详细的!!!支持楼主一下,
点赞  2016-6-20 20:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复