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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2234|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

STM32空中3D鼠標(biāo)源程序與原理圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:994098 發(fā)表于 2021-12-18 23:11 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
分享一個3D鼠標(biāo)的方案
包括軟件,原理圖


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

  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(); //配置系統(tǒng)時鐘
  32. delay_ms(50);
  33. I2C_Configuration();
  34. GPIO_Configuration();       
  35. SPIx_Init();

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

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

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

  45. //設(shè)置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. //----------------單擊雙擊優(yōu)化,防止雙擊時指針漂移---------------------------------
  67. //-無線數(shù)據(jù)包標(biāo)志:【左單1】【 左雙2】 【左長3】 【右單4】 【左右長5】

  68. if(dir_time>=5) //按鍵掃描周期:5ms*5=25ms
  69. {         
  70.          dir_time=0;
  71.          Get_KEY();   //取得按鍵狀態(tài)
  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;}//第一下點完,未超時且又被觸發(fā),為左鍵雙擊
  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();    // 發(fā)送RF數(shù)據(jù)包

  85. }

復(fù)制代碼

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


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:756400 發(fā)表于 2022-11-23 18:45 | 只看該作者
謝謝分享,我看看好不好用。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人久草 | 黑人巨大精品 | 欧美在线观看黄色 | 欧美色999 | 欧美日韩大片 | 久久国产激情视频 | 在线日韩欧美 | 91看国产| 精品综合视频 | 欧美日韩大陆 | 欧美视频成人 | 国产极品粉嫩美女呻吟在线看人 | 中文字幕在线一区二区三区 | 中文字幕一区二区三区四区五区 | 毛片免费看的 | 91精品国产综合久久久久 | 久操伊人 | 国产成人精品一区二区三区 | 中国毛片免费 | 99re视频在线 | 黑人巨大精品欧美一区二区免费 | 超碰网址 | 久久一级大片 | 欧美国产在线一区 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 亚洲精品福利视频 | 亚洲激情自拍偷拍 | 欧美激情在线播放 | 欧美手机在线 | 国产午夜精品一区二区三区四区 | 国产精品欧美一区二区三区不卡 | 黑人巨大精品欧美一区二区免费 | 91在线网| 国产精品视频免费播放 | 亚洲一区二区三区视频在线 | 日韩精品av一区二区三区 | 日韩高清中文字幕 | 一级毛片在线播放 | 免费看一区二区三区 | 亚洲 一区 | 欧美精品久久久久久久久久 |