本帖最后由 GalaIO 于 2015-9-17 21:53 编辑
终于等来了第二个帖子了,最近刚开学比较忙,,嘿嘿。
上一个帖子主要是对mico-8233的 开箱,简单试用了easylink功能和通过客户端控制micokit的硬件,但是要从开发角度的话,就必须理解micokit的开发流程。这贴就学习了如何开发一个helloworld程序,当然根据官方历程修改,对于更多资料大家可以去庆科的wiki官网,由于我的账号权限低,所以就不放链接了。
工欲善其事必先利其器,这个道理都懂,放在mcu开发的话 ,意思你你得有个调试器,有调试器会方便你的开发,同时利于调试程序和追踪错误。我自己的话,手头有一个nucleo-
STM32f401,上面自带一个st-link,可以方便调试stm32系列处理器,使用的是swd接口,这个接口很简单,只需要接2-3根线就可以了。下图就是JTAG和SWD的结构对比。
刚才我忽略掉一些事,那就是这个核心板的型号,这个核心板是
一体式(指 MCU 内置于 Wi-Fi 模块内部MiCOKit-3288,内置 STM32F411CEU6,具有 512KB Flash,128K SRAM 和丰富的外设等。所以我们开发mico-8233就是控制stm32f411,至于wifi可以参考mico的sdk,也可以找相应的wifi型号去研究驱动。这些我也没深究。
下面我给出我自己连接nucleo与micokit的连线。
我把vcc、swclk、swdio、gnd都连好了。
直接使用keil打开工程,路径和文件如下:
主要是keil用的比较顺手,所以使用keil来开发,然后把工程切换到8233,默认是8156.
设置调试器配置,及其下载算法。
添加代码到helloworld.c文件,每次都打印led的状态。
很简单吧,对了,我们的i初始是1,由于i的翻转,实现串口输出led的不同状态,但led的状态,我是怎么知道的呢?在Board/micokit-8233下,有特定的底层文件,我们都知道,为了保证程序的可移植性,让底层和上层脱离,只保留一直的api是很重要的,mico也是这么做,在board下有特定的底层文件,然后我们引用。
在platform.c下,有gpio的初始化配置,可以发现吧led初始化成低了,led的原理图,吧led挂在vdd了,所以输出0即灯亮。在helloworld中,一执行就翻转io,所以led是灭的,然后我们也对i翻转,输出led off,随后过程随led一块翻转即可,实现了实时打印led状态。
现在可以编译下载了,最后看效果了。下面是串口和拍照。
到此,helloworld历程结束了,简单修改了一下源码,来达到我们自己的效果~~~以后我也会更多侧重对mico已有代码的分析的。