在线编译mbed开发环境应用记录(1)

来源:互联网 发布:squid 监听多个端口 编辑:程序博客网 时间:2024/05/16 07:41

时间是把杀猪刀,自己码的代码即使在想当然过去了也会莫名奇妙,所以吸取教训把做过的东西做一个记录.-2017.09.03 乐
开发环境:mbed
板子:stm32L432 NUCLEO-32

例程1:hello world !

官方Nucleo_printf 对应上位机程序存放位置(/Datalib/warren/文档/01_自主科研/1_工作资料/5_stm32&pc)

上传步骤:mbed编译生成bin文件;下载保存到板子对应的存储盘目录下;ok 运行上位机,产看接收数据.

积累知识点:
mbed.h头文件
Serial pc(SERIAL_TX, SERIAL_RX);
Serial pc(USBTX, USBRX);
#指定输出为miniUSB端口(输出到usb端)
pc.printf("Hello World !\n");

例程2:Nucleo_Ultrasonic HelloWorld

例程链接
注意事项:Nucle_UltrasonicHelloWorld程序设定D8->trigger pin ,D9->echo pin ,运行程序发现在板子上有问题,直接改为其他引脚链接就OK,例如:
ultrasonic mu(D9, D10, .05, 1, &dist);

上传步骤:mbed编译生成bin文件;下载保存到板子对应的存储盘目录下;ok 运行上位机,产看接收数据.

积累知识点:
#include "mbed.h"
#include "ultrasonic.h"
ultrasonic mu(D9, D10, .05, 1, &dist); 参数依次:trigger pin echo pin 获取速度 链接超时时间 更新函数
void dist(int distance) 跟新函数内可以放置距离相关代码,当距离跟新时执行更新函数内代码.
mu.startUpdates();启动测距程序
mu.checkDistance(); 查询距离
printf("Distance changed to %dmm\r\n", distance); 默认输出到usb串口

例程3:IMU say hello

程序链接

注意事项:MPU6050_test 波特率修改为9600或者去掉默认值即是9600;修改引脚到sda scl对应角,根据数据手册选其中一对D4,D5 .
MPU6050 mpu(D4,D5);
pc.baud(9600);

上传步骤:mbed编译生成bin文件;下载保存到板子对应的存储盘目录下;ok 运行上位机,产看接收数据.

积累知识点:
#include "mbed.h"
#include "MPU6050.h"
MPU6050 mpu(D4,D5); 参数依次sda scl 可查看对应函数定义
mpu.getID()==0x68  检测默认adress地址
mpu.start(); 开始获取数据线程
mpu.read(&gx,&gy,&gz,&ax,&ay,&az); 读取数据

存在问题:该库无DMP直接输出

例程4:Microphone say hello

程序链接

注意事项:EasyVR_Bridge波特率修改为9600或者去掉默认值即是9600;修改引脚A6.
pc.baud(9600);
AnalogIn mic(A6);

上传步骤:mbed编译生成bin文件;下载保存到板子对应的存储盘目录下;ok 运行上位机,产看接收数据.

积累知识点:
#include "mbed.h"
AnalogIn mic(A6);设定模拟信号输入引脚
float amp, maxAmp = 0, minAmp 设定存储变量
amp = mic.read()获取引脚输入信号量

待解决问题:读取引脚频率确定,最高地高到多少Hz.

例程5:Touch say hello

FSR402
传感器资料
EasyVR_Bridge链接好之后,直接读取引脚,程序参照麦克风的程序进行读取。
待解决问题:读取引脚频率需要确定。

例程6:SD say hello

sd-1
sd-3
图片资料
程序链接

注意事项:SDFileSystem_HelloWorld修改引脚。
A3-PA4 –SPI1_NSS—CS
A4-PA5–SPI1_SCK—CLK
A5-PA6– SPI1_MISO—MISO
A6-PA7–SPI1_MOSI—MOSI
VCC–VCC
GND–GND

SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name, PinName cd = NC, SwitchType cdtype = SWITCH_NONE, int hz = 1000000);

SDFileSystem sd(A6, A5, A4, A3, "sd", D3, SDFileSystem::SWITCH_NEG_NO, 25000000);

上传步骤:mbed编译生成bin文件;下载保存到板子对应的存储盘目录下;ok 运行上位机,产看接收数据.

积累知识点:
#include "mbed.h"
#include "SDFileSystem.h"
SDFileSystem sd(A6, A5, A4, A3, "sd"); 指定SD卡变量

FileHandle* file = sd.open("Test File.bin", O_WRONLY | O_CREAT | O_TRUNC); 打开SD卡
fp = fopen("/sd/sdtest.txt", "r"); 打开SD卡,创建txt格式文档

file->write(buffer, sizeof(buffer)) 写入SD卡
file->close() 关闭SD卡
fprintf(fp, "We're writing to an SD card le !");写入SD卡
fclose(fp);关闭SD卡

FileHandle* file = sd.open("Test File.bin", O_RDONLY); 打开SD卡
file->read(buffer, sizeof(buffer)) 读取SD卡
fp = fopen("/sd/sdtest.txt", "r"); 打开SD卡
char c = fgetc(fp);读取SD卡

例程7:bluetooth say hello

程序链接
注意事项:BluetoothTest修改引脚。
Serial BlueTooth(D1,D0); #A7 , A2 引脚虽然也可以当串口但是同usb默认串口共用,为了放置信息错乱,尽量避开
Serial pc(USBTX,USBRX);#A7,A2, 应该是共用,同一引脚
DigitalOut led2(LED2);
AnalogIn anaIn(A6); 

上传步骤:mbed编译生成bin文件;下载保存到板子对应的存储盘目录下;ok 运行上位机,产看接收数据.

积累知识点:
#include "mbed.h"
#include <string>
Serial BlueTooth(D1,D0); #打开蓝牙串口
BlueTooth.baud(9600); #设定蓝牙波特率
BlueTooth.writeable() 检查蓝牙是否可用返回bool型
BlueTooth.printf("mpu = %4.2f,air = %4.2f,cadence = %4.2f,message = buletooth %s,f=%f\n",mpu,air,cadence,message,f);#蓝牙发送信息

完成,后续进行整体传感器信息的统一调试。地基算是基本完成。(2017.09.11)