📄 main.c
字号:
#include <LPC213x.H> // Philips Peripheral Registers
#include <LPC213xDEF.H> //ARM菜鸟HotPower创建定义文件
#include "main.h"
/*----------------------------------------------------
文 件 名: LPC213XDEF.H
创 建 人: ARM菜鸟 HotPower@126.com
创 建 日 期: 2005.7.23 0:38
最近修改日期: 2006.1.11 2:38
创 建 地 点 : 西安大雁塔村队部
说 明 : 已经过LPC2131开发板硬件调试
实 验 项 目 : 串口实验
------------------------------------------------------*/
//函数声明
void UART0_Init(void);
void UART0_SendByte(uint8 dat);
void DelayNS (uint32 dly);
void DelayNS (uint32 dly)
{
uint32 i;
for ( ; dly>0; dly--)
for (i=0; i<50000; i++);
}
/*
*********************************************************************************************************
** 函数名称 :UART0_Init()
** 函数功能 :串口初始化,设置为8位数据位,1位停止位,无奇偶校验,波特率115200。
** 入口参数 :无
** 出口参数 :无
*********************************************************************************************************
*/
void UART0_Init(void)
{
uint16 Fdiv;
PINSEL0 |= (P0_0_TXD0 << P0_0_PINSEL) | (P0_1_RXD0 << P0_1_PINSEL); //设置I/O连接到UART0
U0LCR = 0x83; // DLAB=1,允许设置波特率
Fdiv = (Fpclk / 16) / UART_BPS; // 设置波特率
// U0DLM = Fdiv / 256;
// U0DLL = Fdiv % 256;
U0DLM = 0;
U0DLL = 94;//95;//96;//98;//97;
U0LCR = 0x03;
}
/*
*********************************************************************************************************
** 函数名称 :UART0_SendByte()
** 函数功能 :向串口发送字节数据,并等待发送完毕,查询方式。
** 入口参数 :dat 要发送的数据
** 出口参数 :无
*********************************************************************************************************
*/
void UART0_SendByte (uint8 dat)
{
U0THR = dat;
while ((U0LSR & 0x40) == 0); // 等待数据发送完毕
}
void KeyInit(void)
{
IO0DIR &=~((1 << KEY1) // 设置KEY1为输入
| (1 << KEY2) // 设置KEY2为输入
| (1 << KEY3) // 设置KEY3为输入
| (1 << KEY4) // 设置KEY4为输入
| (1 << KEY5) // 设置KEY5为输入
| (1 << KEY6)); // 设置KEY6为输入
}
/*
*********************************************************************************************************
** 函数名称 :main()
** 函数功能 :用P0.7控制BEEP,让BEEP鸣叫。
** 调试说明 :需将跳线JP5和LED短接。
*********************************************************************************************************
*/
int main (void)
{
unsigned int i;
PINSEL0 = 0x00000000; // 设置管脚连接GPIO
PINSEL1 = 0x00000000; // 设置管脚连接GPIO
IO0DIR = 0x00000000; // 设置P0口为输入
IO1DIR = 0x00000000; // 设置P1口为输入
UART0_Init();
KeyInit();
while (1)
{
if (!(IO0PIN & (1 << KEY1))) {//有KEY1键压下(P0.16=0 低电平)
for(i = 0; i < 256; i ++) {
UART0_SendByte(0x55);//发送256个0x55
DelayNS(1);
}
}
else if (!(IO0PIN & (1 << KEY2))) {//有KEY2键压下(P0.17=0 低电平)
for(i = 0; i < 256; i ++) {
UART0_SendByte(0xaa);//发送256个0xaa
DelayNS(1);
}
}
else if (!(IO0PIN & (1 << KEY3))) {//有KEY3键压下(P0.18=0 低电平)
for(i = 0; i < 256; i ++) {
UART0_SendByte(0x00);//发送256个0x00
DelayNS(1);
}
}
else if (!(IO0PIN & (1 << KEY4))) {//有KEY4键压下(P0.19=0 低电平)
for(i = 0; i < 256; i ++) {
UART0_SendByte(0x11);//发送256个0x11
DelayNS(1);
}
}
else if (!(IO0PIN & (1 << KEY5))) {//有KEY5键压下(P0.20=0 低电平)
for(i = 0; i < 256; i ++) {
UART0_SendByte(0x13);//发送256个0x13
DelayNS(1);
}
}
else if (!(IO0PIN & (1 << KEY6))) {//有KEY6键压下(P0.21=0 低电平)
for(i = 0; i < 256; i ++) {
UART0_SendByte(i);//发送256个数据0x00~0xff
DelayNS(1);
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -