嵌入式开发简单C语言程序
#include "systemInit.h"
#include <string.h>
#include <uart.h>
// UART初始化
void uartInit(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_UART2); // 使能UART模块
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOG); // 使能RX/TX所在的GPIO端口
GPIOPinTypeUART(GPIO_PORTG_BASE,GPIO_PIN_0 | GPIO_PIN_1); // 配置RX/TX所在管脚为, UART收发功能
UARTConfigSet(UART2_BASE, // 配置UART端口
9600, // 波特率:9600
UART_CONFIG_WLEN_8 | // 数据位:8
UART_CONFIG_STOP_ONE | // 停止位:1
UART_CONFIG_PAR_NONE); // 校验位:无
UARTEnable(UART2_BASE); // 使能UART端口
}
// 通过UART发送字符串
void uartPuts(const char *s)
{
while (*s != '\0')
{
UARTCharPut(UART2_BASE, *(s++));
}
}
// 主函数(程序入口)
int main(void)
{
int c,len;
char s[300]="\nwjc:";
jtagWait(); // 防止JTAG失效,重要!
clockInit(); // 时钟初始化:晶振,6MHz
uartInit(); // UART初始化
uartPuts("cjw");
for (;;)
{
c = UARTCharGet(UART2_BASE); // 等待接收字符
UARTCharPut(UART2_BASE, c); // 回显,显示出输入的字符
if(c==13)
{
uartPuts(s);
len=strlen(s);
}
else if(c==8) //判断输入的是不是退格键
{
if(len==5) //判断已输入字符长度
{
uartPuts("\a"); //蜂鸣报警声
uartPuts(":");
}
else
{
len--;
}
} else
{
len++;
}
}
}
是这样的,这是一个用来开发控制台的程序,用C语言写的,上面那幅图片是打开这个程序的目录,这个只是一个main函数,还有其他函数,运行程序时是要将这个程序写入到开发板才能运行。我的目的是:当我输入退格键时,正常退格,输入回车键时,换行,这两个已经实现了,我用的是ASCII码中的十进制判断的;现在我也想用这种方法来判断上下左右方向键,也就是ASCII码中的37,38,39,40,但是我依葫芦画瓢后,貌似不能实现,不过我听有人说,这几个方向键不是一个ASCII码就能控制的,好像是需要几个,请问到底该怎样做啊。。雪地在线跪等。。。
[解决办法]
建议 LZ 先做个试验,去得到你想要的上下左右方向键键值,如果能得到,就用得到的键值;如果不能,再看你获取键值的代码。