色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PT32L007F8P7K& QMA6100P IIC 通訊源代碼分享

Rickluo ? 來源:Rickluo ? 作者:Rickluo ? 2024-06-07 09:53 ? 次閱讀

/**
******************************************************************************
* @file qma6100p.c
* @author Yangzhiqiang@qst
* @version V1.0
* @date 2020-5-27
* @brief qma6100p
******************************************************************************
* @attention
*
*
******************************************************************************
*/

#include "qma6100p.h"
#include "PT32x007x.h"
#include "string.h"


#define MT6701_ADDR (0x0C)
#define fabs(x) (x < 0 ? -x : x)

void delay_us(uint32_t delay)
{
uint32_t i,j,k;
for(i=0;i {
for(j=0;j<100;j++)
{
k++;
}
}
}
//---------------------------------------

void Acce_Write_Byte(unsigned int WriteAddr, u8 data)
{
// int i;
/******************等待從機ready***************/
I2C_GenerateEvent(I2C,I2C_Event_Start,DISABLE);
I2C->CCR |= I2C_CCR_SI | I2C_CCR_ACK;
I2C_Cmd(I2C,DISABLE);
I2C_Cmd(I2C,ENABLE);

I2C_GenerateEvent(I2C,I2C_Event_Start,ENABLE);
while(I2C_GetFlagStatus(I2C,I2C_FLAG_StartOk)!= SET);
// printf("---%s %d---n", __func__, __LINE__) ;
I2C_SendAddr(I2C, MT6701_ADDR);//器件地址,寫
while(I2C_GetFlagStatus(I2C,I2C_FLAG_MASGetAckW)!=SET);
printf("%s %drn", __func__, __LINE__) ;
I2C_SendData(I2C,WriteAddr);//發送要寫的字地址
while(I2C_GetFlagStatus(I2C,I2C_FLAG_MDSGetAck)!=SET);
// printf("---%s %d---n", __func__, __LINE__) ;

I2C_SendData(I2C, data);
while(I2C_GetFlagStatus(I2C,I2C_FLAG_MDSGetAck) != SET);

/******************發送停止位***************/
I2C_GenerateEvent(I2C,I2C_Event_Stop,ENABLE);
}

//uint8_t I2C_EE_Read(u8* pBuffer,u16 ReadAddr, u16 DeviceAddr, u16 data_size)
uint8_t Acce_Read_Byte(u16 ReadAddr)
{
// int i;
uint8_t date = 0 ;
/******************等待從機ready***************/
//printf("---%s %d---n", __func__, __LINE__) ;
I2C_GenerateEvent(I2C,I2C_Event_Start,ENABLE);
while(I2C_GetFlagStatus(I2C,I2C_FLAG_StartOk)!= SET);
// printf("---%s %d---n", __func__, __LINE__) ;
I2C_SendAddr(I2C, MT6701_ADDR);//器件地址,寫
while(I2C_GetFlagStatus(I2C,I2C_FLAG_MASGetAckW)!=SET);

I2C_SendData(I2C,ReadAddr);//發送要讀的頁地址
while(I2C_GetFlagStatus(I2C,I2C_FLAG_MDSGetAck)!=SET);

I2C_GenerateEvent(I2C,I2C_Event_Stop,ENABLE);

/******************接收數據***************/
I2C_GenerateEvent(I2C,I2C_Event_Start,ENABLE);
while(I2C_GetFlagStatus(I2C,I2C_FLAG_StartOk)!= SET);

I2C_SendAddr(I2C, MT6701_ADDR|0x01);//器件地址,讀
while(I2C_GetFlagStatus(I2C,I2C_FLAG_MASGetAckR)!=SET);

I2C->CCR=I2C_CCR_ACK|I2C_CCR_SI;//主機發送NACK
while(I2C_GetFlagStatus(I2C,I2C_FLAG_MDGSendNack) != SET);
date = I2C_ReceiveData(I2C);

/******************發送停止位***************/
I2C_GenerateEvent(I2C,I2C_Event_Stop,ENABLE);

return date ;
}
//---------------------------------------
uint8_t MT6813_read_reg(uint8_t Reg)
{
u8 RegVal = 0;
RegVal = Acce_Read_Byte(Reg);
return RegVal;
}

void MT6813_write_reg(uint8_t Reg,uint8_t Val)
{
Acce_Write_Byte(Reg, Val);
}

void MT6701_INIT(void)
{
uint8_t Buff[2];

// Buff[0] = MT6813_read_reg(0x22);
// if(Buff[0] == 0x60)
// {
// printf("RG 0x22=%xrn",Buff[0]);
// return;
// }

MT6813_write_reg(0x22, 0x60); //
delay_us(10) ;
MT6813_write_reg(0x24, 0x80); //
delay_us(10) ;
MT6813_write_reg(0x27, 0xB8);
delay_us(10) ;

Buff[0] = MT6813_read_reg(0x22);
printf("RG 0x22 C=%xrn",Buff[0]);

Buff[0] = MT6813_read_reg(0x24);
printf("RG 0x24 D=%xrn",Buff[0]);

//save eeprom
MT6813_write_reg(0x09, 0xB3);
MT6813_write_reg(0x0A, 0x05);
}

short angle_now;
uint8_t MT6701_GetData(uint8_t *Magnet)
{
uint8_t Buff[6];
int data;

float angle;

Buff[0] = MT6813_read_reg(0x03);
Buff[1] = MT6813_read_reg(0x04);

Magnet[0] = Buff[0];
Magnet[1] = Buff[1];

data = (short)((Magnet[0]<<8)|(Magnet[1]));
data = data>>2;

angle = (float)(data*0.022);
if(angle<0)
{
angle = 360+angle;
}

// if((short)angle != angle_now)
// {

// angle_now = (short)angle;
// printf("angle=%drn",angle_now);
// }

printf("angle=%.2frn",angle);
return angle_now;

}

uint8_t Zero_point_programming(void)
{
uint8_t Buff[2],ZH,ZL;
int data ;

Buff[0] = MT6813_read_reg(0x32);
ZH = Buff[0] & 0xf0;
MT6813_write_reg(0x32, ZH);
MT6813_write_reg(0x33, 0x00);

Buff[0] = MT6813_read_reg(0x03);

data = (short)((Buff[0]<<8)|(Buff[1]));
data = data>>2; //14bit
data = data>>2; //12bit

ZH = ZH | (uint8_t)(data >> 8) ;
ZL = (uint8_t)(data & 0x0f) ;

MT6813_write_reg(0x32, ZH);
MT6813_write_reg(0x33, ZL);

//save eeprom
MT6813_write_reg(0x09, 0xB3);
MT6813_write_reg(0x0A, 0x05);

Buff[0] = MT6813_read_reg(0x32);

if((Buff[0] == ZH) && (Buff[1] == ZL))
{
return 1;
}

return 0;

}

wKgZomZiZ7KAAjovABwP93LgbTY229.png

PT32L007是一款Cortex M0 內核的MCU,該系列產品最高主頻可達64MHz,1.8~5.5v,-40~105℃,Flash 64Kbyte,SRAM 16Kbyte,深度睡眠電流低至 500nA,支持16位低功耗定時器,12bit ADCUART x 2,I2C,SPI,Timer x 6,18 GPIO,封裝TSSOP20/QFN20,廣泛應用于消費電子、手持設備、消防安防、儀器儀表物聯網工業控制等領域。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17458

    瀏覽量

    354441
  • 通訊
    +關注

    關注

    9

    文章

    919

    瀏覽量

    35237
  • IIC
    IIC
    +關注

    關注

    11

    文章

    303

    瀏覽量

    38715
收藏 人收藏

    評論

    相關推薦

    【瑞薩RA2L1入門學習】開箱+Keil環境搭建+點燈+點亮OLED

    【開箱】 瑞薩 RA2L1 開發板使用 R7FA2L1AB2DFL 芯片 基于 ARM Cortex M23 內核,主頻 48M,Flash 256K,RAM 32K 片上資源已經足夠
    發表于 01-25 12:10

    《DNESP32S3使用指南-IDF版_V1.6》第三十二章 IIC_QMA6100P實驗

    信號;STOP,表示IIC停止信號。l 讀寄存器QMA6100P的讀寄存器時序如下圖所示。圖32.1.3.2 QMA6100P讀寄存器時序圖中,同樣是先發送
    發表于 12-26 09:45

    基于CW32L010F8P6的電機驅動板簡易測試

    基于CW32L010F8P6的一款開源電機驅動板,可驅動無刷電機(無感或有感),直流電機或步進電機。
    的頭像 發表于 11-19 09:38 ?551次閱讀
    基于CW32<b class='flag-5'>L010F8P</b>6的電機驅動板簡易測試

    CMS中微半導 SC8P052AD408SP、 SC8P052AD406ST 消費類小家電OTP單品機

    ℃~+85℃。SC8P052系列包含SC8P052AD408SP、 SC8P052AD406ST。 產品特性: &amp;gt;OTP 時鐘16MHz/2T@3.0V~5.5V 時鐘
    發表于 11-13 17:51

    羅德與施瓦茨AREG-P解決方案提高汽車雷達生產效率

    羅德與施瓦茨(以下簡稱“R&amp;S”)為其汽車雷達目標模擬器 R&amp;S AREG800A 推出新選件。新型 R&amp;S AREG-P 為汽車雷達傳感器從研發到生產創造了無
    的頭像 發表于 10-21 10:14 ?544次閱讀

    onsemi LV/MV MOSFET 產品介紹 &amp;amp;amp; 行業應用

    01直播介紹直播時間2024/10/281430直播內容1.onsemiLV/MVMOSFET產品優勢&amp;市場地位。2.onsemiLV/MVMOSFETRoadmap。3.onsemiT10
    的頭像 發表于 10-13 08:06 ?657次閱讀
    onsemi LV/MV MOSFET 產品介紹 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行業應用

    測測萬用表?合宙功耗分析儀Air9000&amp;amp;amp;Air9000P齊出動

    測測萬用表?合宙功耗分析儀Air9000&amp;Air9000P齊出動
    的頭像 發表于 09-11 18:24 ?1030次閱讀
    測測萬用表?合宙功耗分析儀Air9000&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;Air9000<b class='flag-5'>P</b>齊出動

    51單片機(STC8H8K64U/STC8051U34K64)_RA8889_HW_SPI4參考代碼(v1.3) 硬件SPI方式驅動大屏顯示

    文章導引: (1)51單片機(STC8051U34K64)_RA8889_SPI4參考代碼(v1.3) (2)51單片機STC8H8K64U通過RA8889/RA8876如何控制彩屏_I2C源碼下載
    發表于 07-17 11:15

    FS201資料(pcb &amp;amp; DEMO &amp;amp; 原理圖)

    電子發燒友網站提供《FS201資料(pcb &amp; DEMO &amp; 原理圖).zip》資料免費下載
    發表于 07-16 11:24 ?2次下載

    ADXL345 與 PT32L007 IIC通訊源代碼分享

    PT32L007 PT32L005 ADXL345
    的頭像 發表于 06-07 10:04 ?628次閱讀
    ADXL345 與 <b class='flag-5'>PT32L007</b> <b class='flag-5'>IIC</b><b class='flag-5'>通訊</b><b class='flag-5'>源代碼</b>分享

    STM8L101F3P怎么用USART喚醒WFE裝下的單片機?

    STM8L101F3P怎么用USART喚醒WFE裝下下的單片機
    發表于 05-13 06:05

    【Vision Board創客營連載體驗】RW007 WIFI模塊聯網

    開發環境: RT-Thread Studio:v2.2.7 開發板:RA8D1 Vision Board開發板 MCU:R7FA8D1BHEC337AS02 1 RW007簡介 RW007
    發表于 04-29 21:55

    STM8L101F3U6TR的硬件IIC從機進不了中斷是為什么?

    這個程序和他人能用的程序仔細比對過,流程都是一樣的(他人用的stm8l不是我用的這個型號,但是這個應該不礙事),選項字節也檢查了沒有問題 無奈就是不工作,也進不了iic中斷。 (IIC硬件接口
    發表于 04-09 06:25

    求助,在STM30WB55中如何讓P2P_Client同時連接P2P_Sever1和P2PSever2等多個設備?

    define CFG_DEV_ID_P2P_SERVER1(0x83) define CFG_DEV_ID_P2P_SERVER2(0x84) app_ble.c如下: if (adlength &amp
    發表于 04-01 06:04

    水晶頭4p6p8p有什么不一樣?

    水晶頭4p、6p8p分別代表的是網線連接器的規格和接口數量。 4P:指的是四針腳的連接器,通常用于電話線、調制解調器等的連接。 6P:指的
    的頭像 發表于 03-14 10:37 ?8631次閱讀
    主站蜘蛛池模板: 熟女强奷系列中文字幕 | 阿v天堂2017在无码 | 真人女人无遮挡内谢免费视频% | 国产成人自产拍免费视频 | 亚洲视频精品在线观看 | 99精品无码AV在线播放 | 天天看学生视频 | 天堂Av亚洲欧美日韩国产综合 | 欧美巨大xxxx做受孕妇视频 | 99久久精品费精品蜜臀AV | 中文字幕在线永久 | 免费三级播放器 | 亚洲视频免费在线观看 | 国产在线精品一区二区在线看 | 97国产在线播放 | 免费一区在线观看 | 天堂so导航 | 美女胸网站| 动漫美女被到爽了流漫画 | 樱桃视频高清免费观看在线播放 | 好想被狂躁A片免费久99 | 国产99久久九九精品无码不卡 | 成年人在线免费观看视频网站 | 国产精品久久久久影院 | 亚洲欧美在无码片一区二区 | 美女大本营| 一个人HD在线观看免费高清视频 | 97超碰97资源在线观看 | 婷婷五月久久丁香国产综合 | 亚洲乱码中文字幕久久孕妇黑人 | 久久精品视频在线看15 | 早乙女由依在线观看 | 亚洲综合色在线视频久 | 牛牛在线精品视频(正) | 5g天天奭视频 | 老鸭窝毛片 | 双腿被绑成M型调教PLAY照片 | 国产精品v欧美精品v日韩 | 4455永久在线毛片观看 | 欧美性极品黑人hd | 久久99国产亚洲高清观着 |