本帖最后由 shower.xu 于 2015-3-24 00:05 编辑
几经破折,今天板子才拿到手,结果发现不是之前的那块板子,只有重新搜集资料。
找了半天,基本是大家的各种吐槽,算了吧万事总有开头,花了一晚上时间测量了几个外设的脚位接口,修改了之前板子的blink demo,又翻出吃灰好久的jink8,开干。
一、
测量了四个LED脚位--P0-30/29/8/9
LCD脚位-P1——5、6、7、8、9,分别是SPI和背光控制口
两个uart口--P0_0/1/5/6
五向按键--P1_11/14/16和P0_17/22;
两个功能按键板子上标了--P0_31和P1_13;
板子上还带有一个温度传感器,可调电阻,w25q16,前期用不到,以后再说。
二、
接着是程序,我用的MDK,下了插件包,先看了官方blinkdemo.脚位错的一塌糊涂。改改改.....
老步骤
1、打开外设时钟
LPC_SYSCON->AHBCLKCTRLSET0 = (1UL << 14); /* enable GPIO0 clock
2、初始化端口方向
LPC_GPIO->DIR0 |= (led_mask[0] | /* configure GPIO as output */
led_mask[1] |
led_mask[2] |
led_mask[3] );
3、设置输出电平,NXP这个好,直接对位操作
LPC_GPIO->SET0 = led_mask[num]; /* LED On
LPC_GPIO->CLR0 = led_mask[num]; /* LED Off
好了,再写个延时函数,泡个流水灯
void delay_xms(int xms)
{
int us=(SystemCoreClock/1000)>>2;
while(xms--)
{
us=(SystemCoreClock/1000)>>2;
while(us--);
}
}
int main()
{
int8_t i=0;
SystemCoreClockUpdate();
LED_Initialize();
while(1)
{
LED_Off(i++);
LED_On(i);
delay_xms(200);
if(i>=LED_GetCount()) i=-1;
}
}
三、
翻出吃灰的jlink8,插上选jtag,编译OK,点下载,只听的duang的一声,下载失败,提示我该版本认不出当前核心,要不要选一个,我的jlink驱动老版本,因为是山寨的哪敢用新驱动。这可咋办,看到班子旁边有swd插针,灵机一动选择swd模式,果真成功了。
好了,下面视频和代码奉上。对了,还有脚位原理图
Lpc541X.PDF
(13.98 KB, 下载次数: 24)
LED.rar
(453.21 KB, 下载次数: 29)