打印
[微控制器/MCU]

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

[复制链接]
1709|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
思行合一|  楼主 | 2010-6-25 23:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
学东西就是要趁热打铁,这样进步才能更快,这不,今天继续跟大家分享下我用上位机控制小灯的实验。
在第二篇学习之旅中,我已经完成了串口的基本调试,在第一篇完场了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 (42.93 KB)
2010-6-22 19:10



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

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



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


com.jpg (60.34 KB)
2010-6-22 19:10





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




com-2.jpg (61.29 KB)
2010-6-22 19:10





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




com-3.jpg (62.67 KB)
2010-6-22 19:10





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

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



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

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

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

相关帖子

沙发
年轻不在| | 2010-6-25 23:23 | 只看该作者
好东西,对我们这初学者有益了!

使用特权

评论回复
板凳
liperfy| | 2010-11-24 11:29 | 只看该作者
我是一位初学者,我在Keil uVision3环境下使用的,我现在连UART 调试程序都没有调试成功,在调试助手里面没有输出,是什么原因啊?求大侠指点!

使用特权

评论回复
地板
liperfy| | 2010-12-1 13:48 | 只看该作者
"在第二篇学习之旅中,我已经完成了串口的基本调试,"第二篇,关于串口的基本调试在哪啊?我想看一下

使用特权

评论回复
5
思行合一|  楼主 | 2010-12-5 20:53 | 只看该作者
这是全部代码吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

215

主题

1391

帖子

2

粉丝