在线时间613 小时
UID252169
注册时间2010-12-5
NXP金币0
TA的每日心情 | 开心 2019-2-14 16:49 |
---|
签到天数: 296 天 连续签到: 1 天 [LV.8]以坛为家I
金牌会员
 
- 积分
- 4473
- 最后登录
- 2020-4-14
|
实验七 mbed的GPS串口中断采样
最近较忙,忙于其他板子芯片,今回来测试LPC824的GPS信号获取,硬件连接是:GPS从PC获得+5V和GND,输出信号给LPC824deP0_17口,P0_16口输出信号到PC的串口输入口,PC用虚拟串口显示获得的信息。
参考RawSerial.h和SerialBase.h和Serial.h等相关串口的模块,可以得到:
1. 定义对象需要用到RawSerial.h,可以定义不是LPC824默认的口,此处按照板子最边上的P0_16,P0_17为对象[Object]:RawSerial prtOut(P0_16,P0_17);//TX,RX
注释声明P0_16是TX,P0_17是RX,对象类名称为prtOut;
2. 在ioInit中设置波特率:prtOut.baud(4800);//GPS模块的输出速率
3. 按照实例,如果采用中断,需要定义一个void函数[Function]:
void gpsIn(void){
if(prtOut.readable()){
temp=prtOut.getc();
prtOut.putc(temp);
}
}
函数名称:gpsIn,在变量中添加temp的8位变量,以存放读取1个字节的GPS数据,为了验证getc和putc函数为单字节收发函数,程序如上描述;
4. 在main中添加:prtOut.attach(&gpsIn);
这样在主循环中不需要管制输出GPS数据,有接收中断自动完成。
程序改完后,结果是LCD显示4路ADC,2路PWM,1路脉冲输出,3路中断脉冲输入,1个程序计数器。下跟照片。
再继续抽空完成将GPS数据的东经和北纬数据显示到LCD上。
|
-
LCD显示LPC824的处理数据
-
串口显示LPC824 P0_16送出的数据
|