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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11725|回復: 14
收起左側

stm32+QMC5883L磁力傳感器源程序,可以用來融合校準MPU6050Z軸偏移

  [復制鏈接]
ID:125878 發表于 2019-7-10 10:54 | 顯示全部樓層 |閱讀模式
該代碼是磁力計stm32控制QMC5883L磁力計輸出角度與三個磁力分量,某寶一些標記有hmc5883L模塊實際是QMC5883L,輸出角度一直是45的可以試一下,你會感謝我的

單片機源程序如下:
  1. #include "HMC5883L.h"
  2. #include "I2C.h"
  3. #include "delay.h"
  4. void hmc_write_reg(u8 reg,u8 data)
  5. {
  6.         IIC_Start();
  7.         IIC_Send_Byte(WRITE_ADDRESS);
  8.         IIC_Wait_Ack();
  9.         IIC_Send_Byte(reg);
  10.         IIC_Wait_Ack();
  11.         IIC_Send_Byte(data);
  12.         IIC_Wait_Ack();
  13.         IIC_Stop();
  14.         //delay_ms(5);
  15. }

  16. u8 hmc_read_reg(u8 reg)
  17. {
  18.         u8 data;
  19.         IIC_Start();
  20.         IIC_Send_Byte(WRITE_ADDRESS);
  21.         IIC_Wait_Ack();
  22.         IIC_Send_Byte(reg);
  23.         IIC_Wait_Ack();
  24.         IIC_Stop();
  25.         IIC_Start();
  26.         IIC_Send_Byte(READ_ADDRESS);
  27.         IIC_Wait_Ack();
  28.         data=IIC_Read_Byte();
  29.         IIC_NAck();
  30.         IIC_Stop();
  31.         return data;
  32. }

  33. void hmc_read_XYZ(short int *data)
  34. {
  35. //        u16 temp;
  36. //        temp=hmc_read_reg(DATAX_M);
  37. //        *data++=(temp<<8)+hmc_read_reg(DATAX_L);
  38. //        temp=hmc_read_reg(DATAY_M);
  39. //        *data++=(temp<<8)+hmc_read_reg(DATAY_L);
  40. //        temp=hmc_read_reg(DATAZ_M);
  41. //        *data++=(temp<<8)+hmc_read_reg(DATAZ_L);
  42.         *data++=((int16_t)hmc_read_reg(DATAX_M)<<8)|hmc_read_reg(DATAX_L);
  43.         *data++=((int16_t)hmc_read_reg(DATAY_M)<<8)|hmc_read_reg(DATAY_L);
  44.         *data++=((int16_t)hmc_read_reg(DATAZ_M)<<8)|hmc_read_reg(DATAZ_L);
  45. }

  46. void hmc_init(void)
  47. {
  48.         hmc_write_reg(0X0B,0x01);
  49.         hmc_write_reg(0X20,0x40);
  50.         hmc_write_reg(0X21,0x01);
  51.         hmc_write_reg(CONFIGA,0x1D);
  52.         delay_ms(10);
  53. }

復制代碼


  1. #include "stm32f10x.h"
  2. #include "I2C.h"
  3. #include "HMC5883L.h"
  4. #include "delay.h"
  5. #include "math.h"
  6. #include "usart.h"

  7. //連接引腳PA8(SCL)PA11(SDA)

  8. short int data[3];
  9. double angle,x,y,z;
  10. int main(void)
  11. {       
  12.         delay_init();
  13.         i2c_init();
  14.         hmc_init();
  15.         uart_init(115200);
  16.         while(1)
  17.         {
  18.                 hmc_read_XYZ(data);
  19.                 angle=atan2((double)data[0],(double)data[2])*(180 / 3.14159265)+180;
  20.                 x=(double)data[0];
  21.                 y=(double)data[1];
  22.                 z=(double)data[2];
  23.                 printf("%f %f %f %f\r\n",x,y,z,angle);
  24.                 delay_ms(100);
  25.         }
  26. }
復制代碼

所有資料51hei提供下載:
STM32F1_QMC5883L.7z (3.13 MB, 下載次數: 347)
回復

使用道具 舉報

ID:466684 發表于 2019-7-16 10:17 | 顯示全部樓層
謝謝老哥,整了兩天看了你的代碼終于好了
回復

使用道具 舉報

ID:466684 發表于 2019-7-16 10:19 | 顯示全部樓層
謝謝大佬,兩天的調試,寶寶心里的苦,估計只有大佬能感受到
回復

使用道具 舉報

ID:625819 發表于 2019-10-17 19:38 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

ID:660972 發表于 2019-12-10 20:33 | 顯示全部樓層
賺點黑幣去下載
回復

使用道具 舉報

ID:284786 發表于 2020-10-18 20:33 | 顯示全部樓層
確定能用嗎   我怎么讀出來都是-1啊
回復

使用道具 舉報

ID:855651 發表于 2020-12-16 21:41 | 顯示全部樓層
搞不定,編譯后燒寫,串口一直輸出45,啥原因啊?
回復

使用道具 舉報

ID:338306 發表于 2021-3-12 08:50 | 顯示全部樓層
我已經將資料下載下來了,今天測試一下51程序,希望能用,提前感謝樓主了
回復

使用道具 舉報

ID:462324 發表于 2021-10-16 19:10 | 顯示全部樓層
BigBen 發表于 2020-12-16 21:41
搞不定,編譯后燒寫,串口一直輸出45,啥原因啊?

我也是這樣,你解決了嗎?
回復

使用道具 舉報

ID:462324 發表于 2021-10-16 19:11 | 顯示全部樓層
怎么讀出來是45
回復

使用道具 舉報

ID:978679 發表于 2023-2-16 17:20 | 顯示全部樓層
有沒有HAL庫版本的呀?
回復

使用道具 舉報

ID:1119648 發表于 2024-6-7 09:20 | 顯示全部樓層
為什么讀取到的一直是45
回復

使用道具 舉報

ID:168356 發表于 2024-7-26 11:18 | 顯示全部樓層
可以用,謝謝樓主被某一個寶坑慘了
回復

使用道具 舉報

ID:988162 發表于 2024-7-31 15:31 | 顯示全部樓層
讀出來45 就是假的嗎
回復

使用道具 舉報

ID:418578 發表于 2024-9-21 21:24 | 顯示全部樓層
init的代碼有問題,應該是這樣寫:
  • void hmc_init(void)
  • {
  •         hmc_write_reg(0X0B,0x01);
  •         //hmc_write_reg(0X20,0x40);
  •         //hmc_write_reg(0X21,0x01);
  •         hmc_write_reg(CONFIGA,0x1D);
  •         delay_ms(10);
  • }

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久成人精品 | 国产91久久精品一区二区 | 一级毛片免费完整视频 | www久久99 | 91资源在线 | 欧美日韩国产一区二区三区 | 在线天堂免费中文字幕视频 | 不卡的av在线 | 岛国av在线免费观看 | 国产在线精品一区二区 | 9色视频在线 | aaa国产大片 | 日本不卡免费新一二三区 | 免费日韩av | 日韩亚洲欧美一区 | 国产精彩视频 | 久操伊人 | 欧洲一区二区三区 | 色网在线观看 | 视频一区二区在线观看 | 欧美国产日韩在线观看 | 午夜日韩| 国产japanhdxxxx麻豆 | 91欧美激情一区二区三区成人 | 人人草人人干 | 99免费看 | 极品销魂美女一区二区 | 在线一级片| 亚洲精品久久久久久久久久久久久 | 国产美女精品视频 | 一级黄色短片 | 二区视频 | 成人深夜福利网站 | 国产精品久久久久久久久久久久久 | 国产精品视频一区二区三区四区国 | 国产免费一区二区 | 99久久精品免费 | 久久免费电影 | 青青草一区二区三区 | 久久高清 | 九九亚洲 |