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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32空中3D鼠標源程序與原理圖

[復制鏈接]
跳轉到指定樓層
樓主
分享一個3D鼠標的方案
包括軟件,原理圖


單片機源程序如下:
  1. /*
  2. [3D空間鼠標固件-發送端]

  3. MCU   :STM32F103C8T6
  4. IMU   :MPU6050
  5. RF2.4G:NRF24L01

  6. [ 秋陽 2013-11 ]
  7. */
  8. #include "stm32f10x.h"
  9. #include "stdlib.h"
  10. #include "math.h"
  11. #include "delay.h"
  12. #include "NRF24L01.H"
  13. #include "MPU6050.H"
  14. #include "IIC.H"
  15. #include "spi.H"
  16. #include "ALL_config.h"
  17. #include "var_global.h"
  18. #include "Cal.h"
  19. #include "KEY.h"
  20. //-----------------------------------------------------------------//
  21. u16 dir_time=0;
  22. u8 RC_CON=0;
  23. float Button=0;
  24. u16 TO=0;
  25. u16 C_count,L_count;
  26. u8 D_Clk;
  27. u8 clk1,clk2;

  28. //---------------------------------------------------------------------//


  29. int main()
  30. {
  31. RCC_Configuration(); //配置系統時鐘
  32. delay_ms(50);
  33. I2C_Configuration();
  34. GPIO_Configuration();       
  35. SPIx_Init();

  36. //設置為發射模式
  37. NRF24L01Int();   
  38. NRFSetTxMode(TxDate);       

  39. //設置IMU
  40. IIC_Reboot();
  41. IIC_Reboot();
  42. Init_MPU6050();       

  43. //設置陀螺儀零點
  44. Set_Offset();       

  45. //設置5ms中斷
  46. TIM3_INT();

  47. while(1)
  48. {
  49.         //簡單閃燈
  50.   GPIO_ResetBits(GPIOB,GPIO_Pin_0);
  51.         Delay_s(5);
  52.         GPIO_SetBits(GPIOB,GPIO_Pin_0);       
  53.   Delay_s(5);
  54. }

  55. }
  56. //----------------------------5ms中斷--------------------------------------
  57. void TIM3_IRQHandler()
  58. {
  59. TIM_ClearITPendingBit(TIM3,TIM_FLAG_Update);
  60. dir_time++;

  61. //讀取傳感器
  62. READ_MPU6050();       
  63. Cal_TsData();

  64. sensfusion6UpdateQ(-GRY_F.X,-GRY_F.Y,GRY_F.Z,ACC_AVG.X*100,ACC_AVG.Y*100,ACC_AVG.Z*100,0.005f);
  65. sensfusion6GetEulerRPY(&Q_ANGLE.Roll, &Q_ANGLE.Pitch, &Q_ANGLE.Yaw);


  66. //----------------單擊雙擊優化,防止雙擊時指針漂移---------------------------------
  67. //-無線數據包標志:【左單1】【 左雙2】 【左長3】 【右單4】 【左右長5】

  68. if(dir_time>=5) //按鍵掃描周期:5ms*5=25ms
  69. {         
  70.          dir_time=0;
  71.          Get_KEY();   //取得按鍵狀態
  72.          if (!K_Trg && !K_TrgR) Button=0;
  73.    if (K_Trg) {Button=1;D_Clk=1;}  //左鍵鍵按下,雙擊計時開始
  74.    if (K_TrgR)Button=4; //右鍵按下
  75.    if (K_Cont) L_count++;else L_count=0;         
  76.          if (D_Clk && C_count<15)  C_count++; else {D_Clk=0;C_count=0;} //雙擊超時  
  77.    if (K_Trg && C_count>2) {Button=2;C_count=0;D_Clk=0;}//第一下點完,未超時且又被觸發,為左鍵雙擊
  78.          if (L_count>15)            Button=3;//左鍵長按
  79.          if( K_Cont && K_ContR) Button=5;    //左右鍵按下
  80. }         
  81. //------------------------------------------------------
  82. if(Button==1)clk1++;
  83. if(Button==2)clk2++;

  84. Send_RFdata();    // 發送RF數據包

  85. }

復制代碼

Keil代碼下載:
STM32空中3D鼠標.7z (1.6 MB, 下載次數: 34)


評分

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

查看全部評分

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

使用道具 舉報

無效樓層,該帖已經被刪除
板凳
ID:756400 發表于 2022-11-23 18:45 | 只看該作者
謝謝分享,我看看好不好用。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 1级毛片| 9999国产精品欧美久久久久久 | 中文字幕亚洲一区二区三区 | 天天夜夜操 | 色久五月 | 91在线视频网址 | www四虎com| 欧美大片黄 | 亚洲精品视频一区 | 久久综合久久久 | 亚洲国产成人在线视频 | 91青青草视频| 久久久久国产一区二区三区四区 | 亚洲免费精品一区 | 久久国产高清 | 久久最新 | 国产精品日日做人人爱 | 九九热这里只有精品在线观看 | 亚洲成人福利视频 | 欧美视频二区 | 欧美八区| 亚洲一区二区三区 | 青青草在线播放 | 午夜免费视频 | 国产精品久久久久久久 | 国产精品一区二区三区四区五区 | 国产高清久久久 | 亚州精品天堂中文字幕 | 国产亚洲成av人片在线观看桃 | 九九综合 | 中文字幕精品视频在线观看 | 日本欧美大片 | 欧美日韩高清 | 噜久寡妇噜噜久久寡妇 | 午夜寂寞福利视频 | 国产精品美女久久久久久免费 | 波多野结衣二区 | 国产高清在线精品 | 成人免费看电影 | 日韩视频1 | 99久久免费精品视频 |