三 :串口打印传感器参数
时间:10-02
整理:3721RD
点击:
通过最近几天的使用,发现mbed和Arduino有的一拼啊,上手很快啊
这块小板子上传感器还挺多的,身边没啥低功耗的屏,就串口输出吧,先得把串口调试通,想着会很复杂,结果一条语句搞定,和Arduino一样
#include "mbed.h"然后连接上usb转串口,送的那几根线终于可以有用,居然不通用2.54,应该是缩小体积吧
DigitalOut led1(P0_19);
DigitalOut led2(P0_20);
Serial pc(P0_23,P0_25);
int main()
{
pc.printf("uart is ok!\n");
while(1)
{
led1 = 1;
led2 = 0;
wait(0.5);
led1 = 0;
led2 = 1;
wait(0.5);
}
}
串口助手查看程序运行结果
不对齐
串口没问题,那就来打印传感器参数吧(ps:看了还是出点错好啊,学的更多,省略一堆)
#include <stdio.h>
#include "mbed.h"
#include "BMP180.h"
Serial pc(P0_23,P0_25);
DigitalOut led1(P0_19);
DigitalOut led2(P0_20);
I2C i2c(P0_17,P0_18);
BMP180 bmp180(&i2c);
int main(void)
{
while(1)
{
led1 = 1;
led2 = 0;
wait(2.5);
led1 = 0;
led2 = 1;
wait(2.5);
if (bmp180.init() != 0)
{
printf("Error communicating with BMP180\n");
} else {
printf("Initialized BMP180\n");
break;
}
wait(1);
}
while(1)
{
bmp180.startTemperature();
wait_ms(5); // Wait for conversion to complete
float temp;
if(bmp180.getTemperature(&temp) != 0)
{
printf("Error getting temperature\n");
continue;
}
bmp180.startPressure(BMP180::ULTRA_LOW_POWER);
wait_ms(10); // Wait for conversion to complete
int pressure;
if(bmp180.getPressure(&pressure) != 0)
{
printf("Error getting pressure\n");
continue;
}
printf("Pressure = %d Pa Temperature = %f C\n", pressure, temp);
wait(1);
}
}
看下结果:
又是不对齐问题,还有,这温度。。。。41.2!!!
用\r\n就可以对齐了,这是Windws和Linux下换行不同造成的。
谢谢
这温度有问题吧,41度貌似没法安心的编程啊。我按照官方的wiki做的,还比较正常
不是程序的问题,是那天板子的问题,那天用手摸着确实比较热
这是今天直接运行的图,没做任何修改,温度就很正常了,
牛掰的封装,强悍的cpp
赶脚我要扛不住了......
那啥,\r\n一下吧,看不下去了我都
下次改正过来,\r\n
求加扣扣微信
干啥
想请教一下linknode开发板用mbed编程或者安卓变成做成可穿戴设备
我们的任务是用linknode做一个可穿戴设备,我的想法是利用板子的温度传感器做一个温度感知,在用户长期处于低温空调房时达到一定时间提醒用户保暖到室外走走以防空调病
你能帮忙编一个程序么?
额。。。。我才接触到这个板子,还没到能写产品程序的地步