社区导航

 

搜索
查看: 1939|回复: 5

[设计过程分享] MAX32630FTHR OLED显示测试

[复制链接]

2797

TA的帖子

8

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-9-22 16:50 | 显示全部楼层 |阅读模式
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. }
复制代码


代码很简单,内容也不多。
串口接收到的结果没有毛病,
2.png
OLED显示也没有问题。等后去加好LEDbar再上传工程完工吧!
IMG_1963.JPG


来源:EEWorld MAX32630FTHR设计大赛专区板块,转载请附上链接


回复

使用道具 举报

7021

TA的帖子

193

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-9-22 16:55 | 显示全部楼层
MBED没玩过 好像现在用到的地方还蛮多的

点评

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


回复

使用道具 举报

2797

TA的帖子

8

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2017-9-22 17:06 | 显示全部楼层
常见泽1 发表于 2017-9-22 16:55
MBED没玩过 好像现在用到的地方还蛮多的

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


回复

使用道具 举报

5616

TA的帖子

207

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-9-22 18:31 | 显示全部楼层
壮哥威武!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,虽然在群里买不到板子,但是可以学会开车;虽然学不到技术,但是可以学会开车;商家勿入!加群暗号:喵


回复

使用道具 举报

3366

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2017-9-22 21:36 | 显示全部楼层
每次看到Cpp都有股蛋蛋滴忧桑
So what......


回复

使用道具 举报

2797

TA的帖子

8

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2018-3-20 14:38 | 显示全部楼层
测试一下
  1. # include"test.h"
复制代码





回复

使用道具 举报

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

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-9-22 22:58 , Processed in 0.198608 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表