[原创] NXP LPC1343 开发板 学习之旅(三)------led控制实验

yujiyuan1984   2010-6-22 19:10 楼主

       学东西就是要趁热打铁,这样进步才能更快,这不,今天继续跟大家分享下我用上位机控制小灯的实验。

在第二篇学习之旅中,我已经完成了串口的基本调试,在第一篇完场了led的点亮的实验,那么接下来自然而然的想到了将两个实验合并成一个,这样做既巩固了前面学到的知识,同时也增加了自己学习的兴趣,自娱自乐吗

       个人感觉这个实验实用性还可以,因为它基本表达了一种简单控制流程,通过上位机控制目标板,从而完成一些基本控制动作,同时在动作完成后回传信息进行反馈。下面就是我的代码:

 

#include "LPC13xx.h"
#include "gpio.h"
#include "uart.h"
#include<stdio.h>
#include<string.h>

// TODO: insert other include files here

// TODO: insert other definitions and declarations here
extern volatile uint32_t UARTCount;
extern volatile uint8_t UARTBuffer[BUFSIZE];


uint8_t UartRecChar(void)
{
   while ( UARTCount == 0 );

   LPC_UART->IER = IER_THRE | IER_RLS;   /* Disable RBR */
   UARTCount = 0;
   LPC_UART->IER = IER_THRE | IER_RLS | IER_RBR; /* Re-enable RBR */
   return UARTBuffer[0];
}
//////////////////////////////////////////
void Ledon(void)
{
 GPIOSetValue( PORT0, 7, 1 );
}
//////////////////////////////////////////
void ledoff(void)
{
 GPIOSetValue( PORT0, 7, 0 );
}

int main(void)
{
 uint8_t Key;
 // TODO: insert code here
 UARTInit(115200);
 GPIOInit();
 GPIOSetDir( PORT0, 7, 1 );
 GPIOSetValue( PORT0, 7, 0 );
 UARTSend("LPC1343test\n",sizeof("LPC1343test\n"));

 while (1)
   {
       Key = UartRecChar();
       switch(Key)
       {
          case'o':
           Ledon();
           UARTSend("led on\n",sizeof("led on\n"));
           break;
          case'c':
           ledoff();
           UARTSend("led off\n",sizeof("led off\n"));
           break;
          default:break;
       }
   }

 // Enter an infinite loop, just incrementing a counter

 return 0 ;
}

由于本人不是软件出身,都是临时学习的,所以不是很规范,肯定会有些问题的,还希望大家给些知道建议,说到这,有几个问题咨询下大家,

code.jpg

图中出现了很多感叹号,其提示内容为:pointer targets in passing argument 1 of 'UARTSend' differ in signedness

我不太明白,高人指教下。:(

 

代码编译通过,没有产生错误。。。。然后进入“小甲虫”模式(debug),打开我的串口调试助手,运行出现以下画面

com.jpg

 

程序运行起来了,呵呵,板子正在等待我的命令,然后我发送字母o,打开小灯的操作

 

com-2.jpg

 

这时板子上的led被点亮了,兴奋下。。。 然后再发送c,关闭小灯的命令

 

com-3.jpg

 

板子上的小灯就关闭了,呵呵,简单的控制完成了!!

这是我的第一个“控制流”,后续会继续完善其他LPC1343的测试。

 

心得体会:综合了前面学习的知识,参考了版主tiankai001的学习帖子,再融合一下自己的想法,完成了这次的调试实验。

                 关键是要找到一个应用点,然后根据这个应用来武装自己的LPC1343板子,从硬件到软件,这样学习的效率会

                 更高,后续我将调试i2c接口,这样又可以增强趣味了呵呵,希望大家一起努力!

回复评论 (5)

感叹号是警告,你的参数数据类型不同,不影响程序,但我写程序一般都不允许警告出现,看到就不舒服!!!
点赞  2010-6-22 20:24

回复 沙发 zhaojun_xf 的帖子

哦,是这样,呵呵,那我就明白怎么回事了,谢谢了啊
点赞  2010-6-30 16:03

呵呵

正在做课程设计,基于ARM CORTEX -3的温度检测系统,用nxp1343芯片的,有很多不懂,多多指教哈:$
点赞  2010-11-12 23:23
wo lai我来标记下 刚刚起步io
点赞  2011-2-22 21:57

回复 楼主 yujiyuan1984 的帖子

 

[ 本帖最后由 zgl198905 于 2011-2-25 12:38 编辑 ]
点赞  2011-2-24 08:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复