历史上的今天
返回首页

历史上的今天

今天是:2025年01月14日(星期二)

正在发生

2021年01月14日 | 一起学习 LPC1200 之 GPIO

2021-01-14 来源:eefocus

LPC1200简介


LPC1200系列Cortex-M0微控制器可在高达45MHz的CPU频率下运行,包含高达128KB片内Flash存储器和8KB数据存储器。较小的512字节Flash擦除扇区带来了多种设计上的好处,如更精细的EEPROM仿真,支持从任意串行接口启动加载,减少了对RAM缓存容量的要求,从而为现场编程带来便利。


LPC1200系列Cortex-M0微控制器的外设组件包括一个10位ADC(8通道)、两个带有输出反馈的模拟比较器、两个UART接口、一个SSP/SPI接口、一个带有快速模式的I2C接口、一个看门狗定时器、一个DMA控制器、一个CRC计算及校验模块、四个通用定时器、一个32位RTC和多达55个通用I/O引脚。


首先我们来点LED,我用的板子上有3个LED灯,分别在P0.22,P0.23,P0.24上 以灌电流的方式驱动。打开LPC1200的E文手册,找到GPIO这一章节,看看寄存器如下图所示:



MASK是屏蔽寄存器,默认不屏蔽,因此不用管这个寄存器!


PIN是输入寄存器,今天我们做GPIO的LED实验,无需用到读数据,如果用到读数据则要用到该寄存器。


OUT是输出寄存器,赋值1相应的管脚输出高电平,0相应的管脚输出低电平。


SET ,CLR和NOT也是和OUT输出相关的寄存器,看看解释就知道什么意思。


DIR是方向寄存器。


IS和后面的寄存器是和GPIO中断相关的寄存器。


GPIO的LED实验主要用到 DIR设置方向,SET设置默认输出高电平,OUT改变输出状态。


因此我们设置P0.22可以如下写法:


LPC_GPIO0->DIR|=(1<<22);


设置输出成高电平可以如下写法:


LPC_GPIO0->SET|=(1<<22);


主意:SET那位置1则将相应的位输出为高,置0不会置高 也不会置低,CLR用法正好相反!


让LED闪烁我们可以让OUT取反,或者用SET先置高然后CLR置地!


我们这里使用简单的OUT取反


LPC_GPIO0->OUT=~LPC_GPIO0->OUT;


主意这里将整个口取反了。


如果单个口操作可以使用 上面的方法!


由于我的板上没有别的资源因此将整个口取反也无妨。


不要忘记了在时钟控制中使能GPIO0 的时钟:LPC_SYSCON->SYSAHBCLKCTRL |= (1UL<<31);


整个C代码如下:




/**************************************************

*-------- 一起学习 ARM Cortex-M0 LPC1200 -------- *

*工 程:LED闪烁实验*

*时 间:2011年4月9日*

*作 者:天下的人*

*支 持:贞明电子*

*备 注:http://shop58972409.taobao.com/*

***************************************************/

#include"LPC12xx.h"

#include"system_LPC12xx.h"

#include"core_cm0.h"

//#include"lpc12xx_sysctrl.h"

/******************* 变量定义 *******************/

/******************* 函数声明 *******************/

__inline void LED_init(); //init LED

/******************** 主函数 ********************/

int main()

{

uint32_t i=0;

SystemInit(); // 系统初始化

LPC_SYSCON->SYSAHBCLKCTRL |= (1UL<<31); //使能时钟

LED_init();

while(1)

{

LPC_GPIO0->OUT=~LPC_GPIO0->OUT;

for(i=0;i<1000000;i++); //软件延时 您可以使用定时器

}

}

/******************* 函数定义 *******************/

__inline void LED_init()

{

LPC_GPIO0->DIR|=(1<<22); //Set P0.22 OUT

LPC_GPIO0->DIR|=(1<<23); //Set P0.23 OUT

LPC_GPIO0->DIR|=(1<<24); //Set P0.24 OUT

LPC_GPIO0->SET|=(1<<22); //Set P0.22 High

LPC_GPIO0->SET|=(1<<23); //Set P0.23 High

LPC_GPIO0->SET|=(1<<24); //Set P0.24 High

}

到此为止 我们的GPIO实验就完成了,怎么样是不是很简单!!


推荐阅读

史海拾趣

ETAL公司的发展小趣事

在产品质量和技术水平得到认可后,ETAL开始积极拓展市场。公司制定了详细的市场营销策略,通过参加国际电子展会、与知名企业合作等方式提高品牌知名度。同时,ETAL还注重客户服务,建立了完善的售后服务体系,确保客户在使用产品过程中得到及时、专业的支持。这些举措使得ETAL的市场份额不断扩大,品牌影响力逐渐增强。

Avery Dennison公司的发展小趣事

1990年,Avery Adhesives与Dennison Manufacturing合并,成立了Avery Dennison公司。这一合并不仅增强了公司的实力,也为其全球扩张提供了有力支持。此后,Avery Dennison通过在欧洲建立工厂、收购其他公司等方式,不断拓展其业务版图。如今,公司的业务已经遍及50多个国家,成为全球领先的标签与包装材料解决方案提供商。

General Dynamics SATCOM Technologies公司的发展小趣事

1990年,Avery Adhesives与Dennison Manufacturing合并,成立了Avery Dennison公司。这一合并不仅增强了公司的实力,也为其全球扩张提供了有力支持。此后,Avery Dennison通过在欧洲建立工厂、收购其他公司等方式,不断拓展其业务版图。如今,公司的业务已经遍及50多个国家,成为全球领先的标签与包装材料解决方案提供商。

HI Microwave Technology Limited公司的发展小趣事

在稳固国内市场的同时,HI Microwave积极开拓国际市场,与全球多家知名企业建立了长期稳定的合作关系。公司凭借优质的产品和服务,赢得了国内外客户的广泛赞誉。此外,HI Microwave还积极参与国际展览和交流活动,不断提升品牌知名度和影响力。通过与国际同行的交流与合作,公司不断吸收先进的管理理念和技术成果,为企业的持续发展注入了新的活力。

浙江凡华(FANHAR)公司的发展小趣事

HI Microwave Technology Limited自2004年在中国成立以来,便以“Hertz Infinite”(赫兹无限)为愿景,致力于将产品范围扩展至30 KHz至110 GHz+(针对GaAs、HEMT、PHEMT和MMIC基产品)以及220 GHz+(针对毫米波产品和子系统)。这一宏伟愿景不仅为公司指明了发展方向,也激励着每一位员工不断追求技术创新和产品卓越。在初创阶段,HI Microwave通过引进国际先进的生产设备和技术人才,迅速在微波通信领域站稳脚跟。

Applied Micro Circuits (MACOM)公司的发展小趣事

MACOM公司上市后,成功募得了充足的资金,使其财务能力得到了显著增强。这使得公司能够有更多的资源进行研发、生产和市场推广,进一步巩固其在电子行业的地位。同时,上市也为MACOM带来了更广泛的投资者关注和市场认可,为其未来的发展提供了有力支持。

问答坊 | AI 解惑

IAR5.3(评估版)编译老是提示如下的错误,是怎么一回事啊

Error[Lp021]: the destination for compressed initializer batch \"P2 mid-1\" is placed at an address that is dependent on the size of the batch, which is not allowed when using packbits compression. Consider using \"initialize by c ...…

查看全部问答>

请教:LCD怎样‘横屏’转‘竖屏’

我用的是2450,问一下LCD横屏转竖屏,驱动程序里除了在头文件处修改分辨率外,还要修改什么地方呢? 我只修改了头文件处定义的分辨率的情况下,屏幕变窄了(部分屏幕黑色没图象),竖直方向靠下的部分没被显示出来。 不知道在哪(几)个文件里的函 ...…

查看全部问答>

下了个WINCE6.0用的GPS软件,为什么EXE文件运行的时候要让我显示打开方式呢?

rt 我用的是OMAP3530开发板,内置GPS模块,WINCE6.0环境已经建立,网上下了个GPS软件,EXE格式的用U盘考进去板子里打不开,出现类似于WINDOWS下的让你选择打开方式的窗口,不是EXE是可执行文件吗?而且下的是WINCE6.0可用的版本,谢谢各位了!…

查看全部问答>

ATD*99***1这条AT命令是做什么用的

attach->pdp activation->ATD*99***1, ATD*99***1这条AT命令是做什么用的? PDP激活不就可以传数据了吗?…

查看全部问答>

wince 调试问题

   用ActiveSync直接在开发板上调试程序(wince6.0系统)。调试一次正常,但是结束调试再继续调试时,就会出现错误,有时候是部署不成功,有时候是部署成功,程序不能运行,都是说wince的存储内存不足。但是在wince的控制面板看到,存储 ...…

查看全部问答>

对uCOS移植STM32官方例程的一点疑惑

                                 这两天,下了个ucos在STM32F103ZE-SK开发板上移植的官方例程(uCOSII-ST-STM32F103ZE-SK),这其中有两个文件夹,u ...…

查看全部问答>

电压比较器LM393

本帖最后由 paulhyde 于 2014-9-15 09:04 编辑 电压比较器LM393  用正负12V 供电, 其输出的高电平、和低电平分别为多少呀?   我测试的高为12V, 低为-0.8V, 不知对否?    希望大家能给出自己的测试结果。 &nb ...…

查看全部问答>

吉时利2110型5½位双显示数字万用表(二)

    操作简单 2100操作简单直观,开箱即可使用。前面板易于理解和操作。其KI-Tool和KI-Link软件允许用户通过GPIB(如果安装了)或USB快速控制仪器,记录测量,以及显示数据的时间序列图。其LabView®和IVI驱动则给高级客户开放 ...…

查看全部问答>