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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2334|回復: 1
收起左側

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

[復制鏈接]
ID:994098 發表于 2021-12-18 23:11 | 顯示全部樓層 |閱讀模式
分享一個3D鼠標的方案
包括軟件,原理圖
51hei.png 51hei.png

單片機源程序如下:
  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 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:756400 發表于 2022-11-23 18:45 | 顯示全部樓層
謝謝分享,我看看好不好用。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人爽人人爽人人 | 可以免费看的av | 欧美国产综合 | 中文字幕不卡 | 久久久中文字幕 | 国产区在线 | 日韩在线视频一区二区三区 | 日韩精品综合 | 国产精品一区二区三区在线 | 91爱爱网| av网站网址| 国产精品国产成人国产三级 | 免费看黄视频网站 | 免费毛片在线 | 久久久精品免费 | www.欧美日韩 | 欧美日韩第一区 | 亚洲男人av| 日本一级淫片 | 中文字幕综合网 | 欧美在线一区二区 | 亚洲一区二区三区中文字幕 | 欧美一区二区三 | 亚洲综合免费 | 91久久精品日日躁夜夜躁欧美 | 日韩精品一区在线 | 日韩高清一区二区 | 人人爽av | 波多野结衣乳巨码无在线观看 | 视频一区二区三区在线观看 | 亚洲欧美日韩成人 | 极品尤物一区二区三区 | 视频一区二区在线 | 午夜看看| 夜夜躁狠狠躁日日躁av | 天天躁日日躁狠狠躁av麻豆男男 | 91色国产 | 欧美日韩成人一区二区三区 | 福利视频网址 | 久久av片| 免费黄色小说网站 |