试用项目:智能平衡车
新手报到!
第一次在EEPW论坛发帖,起因是意外被选中做EFM8BB52单片机的开发板试用。因为填写的时候并没有注意到试用时间是到9号就截止了,时间比较仓促,我还选了个苦逼的调PID的活
本来按要求该上开箱贴,但群里得知板卡是海外寄回来的,想想还是算了吧。这是我经历过时间最长的开箱了,开一层消一次毒,喷了小半瓶84我才敢小心翼翼的打开包装袋。
下面直接上高清大图:
板子做的非常精致,左侧较大是是芯科家自产的EFM32-GG12,这是一个32位的单片机,用来做Jlink调试器,右侧较小的那颗才是今天的主角:EFM8BB52。说起芯科,有些人可能不是很熟悉,但是一谈到CP2102/CP2104,大家肯定就特别熟悉了,这是就是每个搞单片机的工程师桌面上都必不可少的USBtoTTL桥接器的生产商,其实他们家还有很多的硬件产品。有兴趣的可以去他们官方网站做进一步了解。今天我们还是主要讲这块加了外挂的8051核:EFM8BB52。
说起51每个玩过单片机的人都一定非常熟悉,这颗核由Intel于1981年设计制造,到今天已经40年了。都说四十不惑,40年过去了,我们任然能在各个犄角旮旯里,在不经意间,发现它还在发光发热(是真的发光、发热!)。
我们今天要讲的主角EFM8BB52用的虽然也是传统8051内核,但是芯科却给他加了一个turbo: 一颗可以跑到 50Mhz 的8051!
是的,你没有看错,这是一颗可以打了鸡血的51单片机,如果不是8051的架构束缚了它,我相信它肯定能吊打某些16位,甚至32位的MCU。
搞软件的开篇第一课,必不可少的就是Hello world!调试硬件,当然就是各种花式Blink~本篇也不意外(其实是活动要求)开局先掌灯!
首先安装官方指定开发工具Simplicity Studio 5,我就喜欢最新版,新功能当然要第一时间尝尝鲜(shishidu)。
安装好以后打开软件,启动画面很极客,就可以进入到软件主界面。
(ps:不清楚什么原因,我的电脑在软件打开以后,加载登录窗的时候一定会假死卡住,然后无法动弹,最终闪退出局,但功夫不负有心人,经过我仔细研究,启动的时候,在页面还没有加载之前,可以点击窗口右上角的x来跳过,这时候就不会卡死在登录窗口了,遇到同样问题的小伙伴可以试试看)
用MicroUSB线缆连接到设备,软件启动的时候会自动加载包管理器,这时候会要求你选择一个设备,插上以后就能自动识别,还是非常方便的。点击next进入到下一步,选择包安装,你可以选择all或者部分,直接选择auto简单省事。
安装完成以后就进入到欢迎画面
选择start进入开发界面,选择第二个标签页,可以看到这里有三个example,我们选择Blink即可,最后单击CREATE创建示例工程:
配置页面可以选择你的项目存放位置,或者也可以使用默认位置:
直接点击Finsh即可进入到程序开发页面
软件是基于eclipse开发的,因此界面和eclipse软件的基本上一致(最近几年好多MCU厂家都在转用Eclipse开发自家的IDE,不得不说:开源,真香!)
点击编译的时候会弹窗提示免费获取keil的license(看来它也使用了armkeil的编译链,不过官方提示它提供了免费的完整版的lecense,这个不用担心),点击链接跳转获取证书copy下来粘贴即可。
按下图中的1234顺序点击编译、烧录、选择生成的hex文件、烧录即可把demo程序下载到开发板中
烧录完成以后即可看到LED0指示灯闪烁起来!
看DEMO的Blink说明,这里使用的是中断方式来Blink的,按照我们传统手艺,当然是直接戳IO+longlongDelay了。
下面使用GPIO+延时方式Blink展示。
首先查看原理图:
LED0是挂载在GPIO1.4上,接下来的工作就比较简单了,都是抄作业,"参考答案"的路径如下:
可以看到,demo程序是在PORTS_1_enter_DefaultMode_from_RESET(void)函数中对LED所在的GPIO进行初始化操作,依葫芦画瓢抄份作业就好,当然,这里我们可以注释掉中断配置的部分,其它的直接用,抄都省了(极致懒)。
设置GPIO别名:
假装写几行代码:
重复编译,烧录的流程,可以看到,LED0指示灯如期闪烁起来了。