大半年前去ZLG公司办事。偶然间得知ZLG的Cortex-M0开发板免费赠送,于是也申请了个。后来因为忙一直没时间研究,最近手头事不多加上EDN开展M0助学活动。因为偶决定痛下决心开始研究M0。在此将学习心得与大家交流
初始M0,M0是针对低端单片机市场的。其竞争对手是传统的51,AVR,PIC,MSP430单片机。高端ARM并不是M0能够匹敌的。据我所知最先面试的M0芯片是NXP的LPC1100系列。ZLG的M0板采用的就是LPC1114.上图: 看到了吧,板子是异常的小啊。从内心情感上来说这个板子确实用的不那么舒心。除了有USB调试外。没有任何外围的扩展。实验起来很麻烦。做个LED还得另外焊个板子用杜邦线来连...杯具啊。。。
在来看看开发环境。我使用的是ZLG公司提供的TKStduio平台,个人是非常喜欢着个软件的。它通过工具链将各种开发软件都集成到一个软件中,不需要在keil啊 ADS .等软件间进行切换。所有的开发环境都类似,加快了软件的熟悉磨合时间。在就是软件非常有特色的显示效果。真的是看上去就喜欢。上图:。不仅如此软件上还加入了许多实际的小工具。例如ASCII工具栏:。还有增加型的串口工具和KFLASH工具。。。这些还是非常实用滴...哈哈..
说完了软硬件开发环境,在来介绍哈今天的M0芯片。板上用的是LPC1114 LQFP48脚封装的啊,有42个IO口。这些IO口比较特别,每个IO口都可以设置为中断。除了外部中断多外,片上还集成了ADC,SSP,I2C,RS485,Timer,PMU这些单元。对了还有8K的RAM和32K的ROM。终合来说还是很有竞争力的。因为这款芯片的零售价格只要13元喔。
首先来介绍哈GPIO ,M0的GPIO寄存器很少喔。常用的是GPIOXDATA,GPIOXDIR(X代表4组IO口)。看上去是不是很熟悉咧。和AVR的IO操作很类似吧。拿第一个最简单的例子来说点亮第一个LED。只需要这两句话就可以了。GPIO1DIR=0X02;//设置P1_1为输出。GPIO1DATA=0XFD;//设置P1_1为低就可以点灯了。就这么简单...呵呵...简单的原因是因为ZLG已经提供了完整的启动代码和初始化程序。所以在这些基础上还是非常简单的。
第一天的M0使用还是非常顺利的。因为简单嘛....初学M0难免遇到很多问题...还希望能结识更多的M友..大家一起讨论...
特附上源代码和工程文件(基于TKStduio环境attachment download)....
*********************************************************************************************************/
#include "..\config.h"
/*********************************************************************************************************
宏定义
*********************************************************************************************************/
#define BEEP (1ul << 7)
#define BEEP_INIT() GPIO2DIR |= BEEP /* 蜂鸣器初始化 */
#define BEEPOFF() GPIO2DATA |= BEEP /* 蜂鸣器关 */
#define BEEPON() GPIO2DATA &= ~BEEP /* 蜂鸣器开 */
/*********************************************************************************************************
** Function name: myDelay
** Descriptions: 软件延时
** input parameters: 无
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void myDelay (INT32U ulTime)
{
INT32U i;
i = 0;
while (ulTime--) {
for (i = 0; i < 5000; i++);
}
}
/*********************************************************************************************************
** Function name: main
** Descriptions: BEEP测试程序,短接P2.7与BEEP(基于EasyCortexM3-1300开发板)
** input parameters: 无
** output parameters: 无
** Returned value: 无
用到的寄存器是GPIOXDATA
GPIOXDIR
*********************************************************************************************************/
int main (void)
{
targetInit(); /* 初始化目标板,切勿删除 */
pinInit(); /* 引脚初始化 */
SYSAHBCLKCTRL |= (1ul << 6); /* 使能GPIO模块时钟 */
GPIO0DIR=1<<1;//设置P0.1为IO口
GPIO0DATA=0XFD;//将P0.1设置为低点亮LED
while (1)
{
//LED闪烁
GPIO0DATA=0XFD;//将P0.1设置为低点亮LED
myDelay(400);
GPIO0DATA=0XFf;//将P0.1设置为高熄灭LED
myDelay(400);
}
}
/*********************************************************************************************************
End File
用户377235 2013-12-20 20:09
用户1002649 2012-9-6 15:24
用户120337 2011-2-18 20:17