4025|5

2774

帖子

8

TA的资源

版主

楼主
 

MAX32630FTHR OLED显示测试 [复制链接]

 MAX32630FTHR 倒是方便,使用MBED开发确实省事很多。
不过MAX32630 由于mbed没有IAR支持,只有MDK支持,加之makefile对于我等菜鸟来说,完全就是搞不明白,
前前后后其实花了不少时间,但是吧都不是在写代码,都是在整支持,最早的时候搞MBED CLI开发环境,后面吧,CLI确实老是编译不成功,各种问题,玩不来,主要是太菜了,后面就在整eclipse想搭个本地调试环境,但是吧,也没有搞出啥子东西出来。
等于是前前后后花了不少时间确毫无进展,然后mbed基于C++,说多了都是泪……又去学习一下C++,本来想着写几个库方便用的,结果吧……玩不来。
时间不多了就实打实的写代码吧……
初步功能差不多就这些,另外还有LEDbar还没有搞,周未再搞吧!
先把初步的代码搞出来。现在结果读取都没有什么问题。使用OLED显示,
主要准备是三个传感器,1个PM2.5,1个CO传感器,1个酒精传感器,
主要选择这三个传感器的原因,有新闻报道CO中毒事件,酒精传感器嘛其实也可以用易燃气体传感器,目的明确,
PM2.5就不多说了,车上的空气有多脏大家都懂的……。
原来打算用一个大的OLED倒映到挡风玻璃上面,形成抬头显示,但是OLED确实太贵了,最后买了一堆小的,就那么个意思吧。
LEDbar也是用来当抬头显示用的。这次没有加,周未再加。
  1. #include "mbed.h"
  2. #include "max32630fthr.h"
  3. #include "Adafruit_SSD1306.h"
  4. #include "USBSerial.h"

  5. MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);

  6. I2C oledI2C(P3_4, P3_5); // SDA, SCL

  7. // Hardware serial port over DAPLink
  8. Serial daplink(P2_1, P2_0);

  9. // serial port for pm1003
  10. Serial pmSerial(P3_1, P3_0);
  11. //for 595 drive LED bar
  12. DigitalOut ledbarClk(P5_3);
  13. DigitalOut ledbardat(P5_4);
  14. DigitalOut ledbarlatch(P5_5);

  15. /* Analog inputs 0 and 1 have internal dividers to allow measuring 5V signals  
  16. * The dividers are selected by using inputs AIN_5 and AIN_5 respectively.
  17. * The full scale range for AIN0-3 is 1.2V
  18. * The full scale range for AIN4-5 is 6.0V
  19. */
  20. AnalogIn fireAir(AIN_4);
  21. AnalogIn alcohol(AIN_5);

  22. // main() runs in its own thread in the OS
  23. // (note the calls to Thread::wait below for delays)
  24. int main()
  25. {
  26.     char incomeByte[32];
  27.     unsigned int pm25;
  28.     unsigned int pm1;
  29.     unsigned int pm10;

  30.     daplink.printf("start \r\n");
  31.     pmSerial.baud(9600);

  32.     Thread::wait(50);  // Give the supplies time to settle before initializing the display
  33.     Adafruit_SSD1306_I2c OLED(oledI2C);  
  34.     OLED.printf("%ux%u OLED Display\r\n", OLED.width(), OLED.height());
  35.     OLED.printf("HelloWorld \r");
  36.     OLED.display();

  37.     daplink.printf("OLED init over \r\n");
  38.     while(1) {
  39.         Thread::wait(250);
  40.         
  41.         while(pmSerial.getc() !=0x42){}
  42.             if(pmSerial.getc() == 0x4d){
  43.                 for(int i = 2; i < 32; i++){
  44.                     incomeByte[i] = pmSerial.getc();
  45.                 }
  46.                
  47.                 unsigned int calcsum = 0;
  48.                 incomeByte[0] = 0x42;
  49.                 incomeByte[1] = 0x4d;
  50.                 unsigned int exptsum = (incomeByte[30]<<8) + incomeByte[31];
  51.                 for(int i = 0; i < 30; i++){
  52.                     calcsum += incomeByte[i];
  53.                     daplink.printf("income[%d],%d\n",i,incomeByte[i]);
  54.                 }
  55.                 if( calcsum == exptsum)
  56.                 {
  57.                    daplink.printf("check ok \n");
  58.                    pm1 = incomeByte[10] + incomeByte[11];
  59.                    pm25 = incomeByte[12] + incomeByte[13];
  60.                    pm10 = incomeByte[14] + incomeByte[15];

  61.                    daplink.printf("pm1:%d\n",pm1);
  62.                    daplink.printf("pm2.5:%d\n",pm25);
  63.                    daplink.printf("pm10:%d\n",pm10);
  64.                 }
  65.         
  66.         }      
  67.         Thread::wait(10);
  68.         OLED.clearDisplay();
  69.         OLED.setTextCursor(0,0);
  70.         OLED.printf("MAX32630FTHR OLED\n");
  71.         OLED.printf("fireAir: %1.2f\n", (6.0f * fireAir) );  // fireAir inputs 4
  72.         OLED.printf("alcohol: %1.2f\n", (1.2f * alcohol) );  // alcohol inputs 5
  73.         OLED.printf("PM2.5: %d \n", pm25 );  // alcohol inputs 5
  74.         OLED.display();
  75.     }
  76. }
复制代码


代码很简单,内容也不多。
串口接收到的结果没有毛病,

OLED显示也没有问题。等后去加好LEDbar再上传工程完工吧!



最新回复

每次看到Cpp都有股蛋蛋滴忧桑  详情 回复 发表于 2017-9-22 21:36
点赞 关注
 
 

回复
举报

7183

帖子

195

TA的资源

五彩晶圆(高级)

沙发
 
MBED没玩过 好像现在用到的地方还蛮多的

点评

,那玩意就是C++打了包……玩不来  详情 回复 发表于 2017-9-22 17:06
 
 
 

回复

2774

帖子

8

TA的资源

版主

板凳
 
常见泽1 发表于 2017-9-22 16:55
MBED没玩过 好像现在用到的地方还蛮多的

,那玩意就是C++打了包……玩不来
 
 
 

回复

6040

帖子

205

TA的资源

版主

4
 
壮哥威武!
 
 
 

回复

3415

帖子

0

TA的资源

纯净的硅(高级)

5
 
每次看到Cpp都有股蛋蛋滴忧桑
个人签名

So TM what......?

 

 
 

回复

2774

帖子

8

TA的资源

版主

6
 
测试一下
  1. # include"test.h"
复制代码



 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表