原创 LPC2388经验总结之FastGPIO

2010-3-22 22:52 4127 6 8 分类: MCU/ 嵌入式

最近在使用LPC2388开发产品,连开发板上的LED灯都闪不起来,问题如下:


#include "config.h"

#define BEEP   (1 << 27) // P0.7控制蜂鸣器,低电平蜂鸣
#define LED      (0xff)                              //p2.0~p2.7对应LED1~LED8

/**********************************************************************************************************
** 函数名称 :DelayNS
** 函数功能 :长软件延时
** 入口参数 :dly 延时参数,值越大,延时越久
** 出口参数 :无
**********************************************************************************************************/
void DelayNS(uint32 dly)
{
uint32 i;

for (; dly > 0; dly--)
for (i = 0; i < 50000; i++);
}

/**********************************************************************************************************
** 函数名称 :main
** 函数功能 :用P1.27控制BEEP,让BEEP鸣叫。
** 调试说明 :需将跳线JP21短接。
**********************************************************************************************************/
int main(void)
{
SCS  = SCS | 0x01; // PORT0和PORT1端口连接到高速端口
FIO2MASK = 0x00000000;
PINSEL3 = 0x00000000; // 设置管脚连接GPIO
FIO1SET = BEEP; // P1.27输出高电平
FIO1DIR = FIO1DIR | BEEP; // 设置增强型端口P1.27为输出口

DelayNS(10);

PINSEL4 = 0x00000000;
FIO2SET = LED;
FIO2DIR = FIO2DIR | LED;

while (1)
{
FIO1SET = BEEP; // P1.27输出高电平
FIO2SET = LED;
DelayNS(50);
FIO1CLR = BEEP; // P1.27输出低电平
FIO2CLR = LED;
DelayNS(50);
}

    return (0);
}

就是没有反应,LED1~LED8没有反应,真是邪门了,清大家有帮忙分析/测试一下。
我用ADS1.2观察寄存器,GPIO端口方向寄存器没有设置成功,始终为0x00000000;
初始化后,进入主循环时,寄存器如下


ourdev_540306.jpg
 (原文件名:lpc2388.jpg) 

引用图片



P1.27方向设置成功,而P2.0~P2.7始终为输入方向,导致始终驱动不了LED1~LED8;
手动在ADS1.2中修改内存,一样不能改,寄存器FIO2DIR好像变成只读的了,不知道是什么原因?
附上测试代码:
https://static.assets-stash.eet-china.com/album/old-resources/2010/3/22/539e84d8-ce93-444a-8a3a-63905ba0967d.rar


最后请教别人才知道,在代码初始化前,加入一句:


加一句: PINSEL10 = 0;


就搞定了,总结一下:


真丢人,这个问题折磨了我快一周了,数据手册没有搞明白;


1.在原理图上,RTCK pin被弱下拉到GND;


2.参考lpc23xx_us_en[1].pdf, 由p147处可知,P2.0~P2.9默认使能为ETM,需要软件设置PINSEL10 = 0,来手动禁止ETM,使能P2.0~2.9的GPIO功能;

文章评论2条评论)

登录后参与讨论

用户377235 2013-10-8 15:22

请问先生,你这个开发板在哪里买的啊?

用户120337 2010-3-23 10:57

呵呵,还没有机会使用LPC2388呢 先体会一下博主的经验吧
相关推荐阅读
用户1628221 2013-05-19 22:00
嵌入式系统软件优化方法(转载)
  出处: http://www.cnblogs.com/ljf181275034/archive/2011/09/21/2184521.html 嵌入式系统由于受功耗、成本和体积等因...
用户1628221 2012-08-15 20:24
基于lwip的TCP客户端同时连接双服务器问题
问题背景: 最近项目使用到lwip,需要作为客户端的设备同时连接两个服务器,连接成功后与其交互数据。 问题提出: 程序开始运行时,首先连接服务器1,连接成功后等待500ms后连接服务器...
用户1628221 2011-04-23 18:22
程序死在Freertos的vListInsert函数内for循环处的解决方法
近来项目需要使用FreeRTOS和Lwip以及can, 开发平台:LM3S8962/9B96 os版本:FreeRTOS6.1.0 lwip版本使用1.3.2   现象:移植完毕后,程序运行一会,网络...
用户1628221 2011-01-17 22:14
关于移植根文件系统时([\u@\h \W]\# )的处理方法(转)
作者:曹忠明,华清远见嵌入式学院讲师。 我们经常用busybox生成根文件系统,可是根文件系统起来以后命令行提示符只有一个“#”号,没有像linux发行版那样是[user@hostname curre...
用户1628221 2010-04-04 00:08
基于LPC2388移植和测试ZLGSD和ZLGFS
这两天调试ZLGSD和ZLGFS,我用的是盈玉工作室的LPC2388,板子布线很好,盈玉LPC2388 board缺点:1.文档粗糙;2.软件就直接用MCB2300的软件;3.就是硬件SD卡设计比较继...
我要评论
2
6
关闭 站长推荐上一条 /2 下一条