久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3886|回復: 1
打印 上一主題 下一主題
收起左側

基于stm32f407zet6的電子手環程序 0.96OLED MPU6050 MAX30102 藍牙

  [復制鏈接]
跳轉到指定樓層
樓主
ID:840143 發表于 2021-11-16 14:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
0.96OLED MPU6050 MAX30102 藍牙

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "tim.h"
  5. #include "pwm.h"
  6. #include "spi.h"
  7. #include "iic.h"
  8. #include "led.h"
  9. #include "wk_up.h"
  10. #include "key.h"
  11. #include "rtc.h"
  12. #include "usart2.h"
  13. #include "24cxx.h"
  14. #include "w25qxx.h"
  15. #include "dht11.h"
  16. #include "algorithm.h"
  17. #include "max30102.h"
  18. #include "max30102test.h"
  19. #include "mpu6050.h"
  20. #include "inv_mpu.h"
  21. #include "inv_mpu_dmp_motion_driver.h"
  22. #include "ANO_TC.h"
  23. #include "draw_api.h"
  24. #include "featureset.h"
  25. #include "test.h"

  26. /*******************************************************************************
  27.                                                         STM32階段項目:電子手環
  28. 2021/10/27        完成部分底層驅動,移植OLED圖形庫,用于后面0.96寸屏幕的顯示,編譯通過。

  29. 2021/10/28        增加RTC,DHT11,WK_UP休眠喚醒(有BUG,按一下會觸發多次)。

  30. 2021/10/29        完成MPU6050的移植,DMP移植,匿名上位機通訊(V2.6版本),其他版本的上
  31.                         位機不不可用。

  32. 2021/10/30        完成OLED時鐘顯示界面,OLED圖形庫增加電量顯示圖標,信號顯示圖標,底層
  33.                         驅動基本完成。

  34. 2021/10/31        完成屏幕顯示的雛形,心率和設置功能未添加(后續完善),很多細節未處理
  35.                         MPU6050必須要喊平穩才能校準。(后續增加MPU6050上傳至更高版本的匿名上
  36.                         位機),原因:高版本的上位機擁有更好看的圖形化界面。
  37.                        
  38. 2021/11/1        完善時鐘,計步,姿態邏輯模塊功能。移植MAX30102(測試未通過,初始化無
  39.                         反應),之前用輪詢掃描按鍵,系統響應太慢,修改成外部中斷。
  40.                         計劃:增加藍牙設置時間,亮度,定時息屏,抬起喚醒(屏幕由滅到亮,實際
  41.                         還沒有休眠),鬧鐘功能。

  42. 2021/11/2        完善藍牙設置時間,亮度,息屏,鬧鐘,休眠,抬起喚醒,跟隨旋轉。
  43.                         待完善:心率,按鍵設置功能。
  44.                         按鍵設置功能:亮度、時間設置已完成。
  45.                         待完善:日期設置,心率。
  46.                        
  47. 2021/11/3        完成設置功能,修復菜單循環顯示出現亂碼問題。
  48.                         待完善:心率檢測。
  49.                        
  50. 2021/11/4        心率驅動完成,邏輯實現完成,項目基本完成。
  51. *****************************************************************************/
  52. /*******************************************************************************
  53. 實現功能:OLED顯示,按鍵切換功能,抬起喚醒,自適應切換屏幕,心率血氧測量,計步功能。

  54. 實現過程:用STM43F407ZET6作為主控芯片,采用外部中斷檢測按鍵,用來切換功能,利用RTC
  55.                   得到當前時間和日期,利用MPU6050姿態傳感器采集數據,經過姿態融合結算出歐
  56.                   拉角,分析歐拉角的值得到當前的狀態,判斷不同狀態要進行不同的處理,驅動
  57.                   MAX30102得到心率血氧值,使用UART2連接藍牙與手機通訊,自定義手機的發送格式
  58.                   利用串口中斷接收手機發過來的指令,在中斷服務函數中判斷,并執行相應的功能。
  59. *******************************************************************************/


  60. #define ANO_OK                 0                //開啟上傳功能則將此宏改為1

  61. extern void OLED_ShowBatteryRatio(u8 x,u8 y,u8 ratio);
  62. extern void OLED_ShowSignal(u8 x,u8 y,u8 strength);

  63. //函數聲明
  64. void MySystemInit(void);        //各種外設的初始化
  65. void TestTask(void);                //測試函數,測試使用

  66.                
  67. /*********************************主函數***************************************/
  68. int main(void)
  69. {        
  70.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
  71.         MySystemInit();//系統初始化
  72.         while(1)
  73.         {       
  74.                 MainShow();
  75.         }
  76. }


  77. //各種接口初始化
  78. void MySystemInit(void)
  79. {
  80.         delay_init(168);                          //初始化延時函數
  81.         uart_init(115200);                        //串口初始化
  82.         USART2_Init(9600);                        //藍牙串口初始化
  83.         LED_Init();                                        //LED初始化
  84.         EXTI_InIt();                                //按鍵中斷初始化
  85.         WK_UP_Init();                                //開機時按下KEY2按鍵,非正常開機,直接進入休眠狀態
  86.         InitGraph();                                //OLED初始化
  87.         OLED_ON();
  88.        
  89.         ClearScreen();
  90.         DrawBitmap(0,0,Panda,128,64);//顯示開機畫面
  91.         UpdateScreen();

  92.         Tim6_Init(100-1,840-1);                //為圖形庫提供1ms時鐘節拍
  93. //        W25QXX_Init();                                //Flash初始化
  94. //        AT24CXX_Init();                                //EEPROM初始化
  95.         maxim_max30102_init();
  96.         MPU_Init();                                        //初始化MPU6050
  97.         while(mpu_dmp_init())                //初始化MPU DMP
  98.         {
  99.                 LED2 =! LED2;                        //若DMP初始化不成功,則LED2閃爍 每隔200ms
  100.                 delay_ms(200);
  101.         }
  102.         ClearScreen();//清屏
  103.         printf("system init ok \r\n");       
  104. }


  105. /*************************************************END*******************************************************/
復制代碼

Keil代碼下載:
最終版.7z (431.47 KB, 下載次數: 233)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:783426 發表于 2021-11-20 16:09 | 只看該作者
感謝樓主的分享,最近剛開始接觸到MAX30102,苦于店鋪給的資料太雜,寫的頭都要禿了,感謝感謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99久久婷婷国产综合精品电影 | 黄色片免费看视频 | 国产一区二区三区久久久久久久久 | 久久国产精品99久久久大便 | 国内精品视频在线观看 | 99精品电影| 在线视频一区二区三区 | 91精品国产色综合久久不卡蜜臀 | 欧美日韩亚洲一区二区 | 一级免费a | 精品熟人一区二区三区四区 | 久久久国产一区二区三区四区小说 | 一区二区视频在线观看 | 国产精品免费看 | 中文字幕久久久 | 一级黄色片一级黄色片 | 精品区一区二区 | 99视频免费在线 | 久久成人国产精品 | 一区二区三区在线播放 | 久草视频在线播放 | 国产在线不卡视频 | 成人毛片视频免费 | 欧美精品一区二区在线观看 | 欧美精品一区三区 | 日韩www| 在线免费观看a级片 | 毛片免费观看视频 | 99久久精品免费看国产免费软件 | 一区二区三区精品在线视频 | 国产91精品在线 | 国产精品久久久久久妇女6080 | 91在线精品一区二区 | 麻豆精品久久 | 中文字幕一区二区三区在线观看 | 97伦理电影网 | 日韩网站免费观看 | 欧美xxxx色视频在线观看免费 | 亚洲喷水 | 亚洲免费在线观看视频 | 免费在线精品视频 |