日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認識你,還能領取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);//發(fā)送要寫的字地址
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);

/******************發(fā)送停止位***************/
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);//發(fā)送要讀的頁地址
while(I2C_GetFlagStatus(I2C,I2C_FLAG_MDSGetAck)!=SET);

I2C_GenerateEvent(I2C,I2C_Event_Stop,ENABLE);

/******************接收數(shù)據(jù)***************/
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;//主機發(fā)送NACK
while(I2C_GetFlagStatus(I2C,I2C_FLAG_MDGSendNack) != SET);
date = I2C_ReceiveData(I2C);

/******************發(fā)送停止位***************/
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℃,F(xiàn)lash 64Kbyte,SRAM 16Kbyte,深度睡眠電流低至 500nA,支持16位低功耗定時器,12bit ADC,UART x 2,I2C,SPI,Timer x 6,18 GPIO,封裝TSSOP20/QFN20,廣泛應用于消費電子、手持設備、消防安防、儀器儀表、物聯(lián)網(wǎng)、工業(yè)控制等領域。

審核編輯 黃宇

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

    關注

    147

    文章

    19160

    瀏覽量

    404819
  • 通訊
    +關注

    關注

    9

    文章

    952

    瀏覽量

    36650
  • IIC
    IIC
    +關注

    關注

    11

    文章

    311

    瀏覽量

    40779
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    安森美3電平NPC逆變器模塊NXH600N105L7F5S1HG/P1HG:高效與可靠的完美融合

    安森美3電平NPC逆變器模塊NXH600N105L7F5S1HG/P1HG:高效與可靠的完美融合 在電力電子領域,逆變器模塊的性能直接影響著整個系統(tǒng)的效率和可靠性。安森美(onsemi)推出
    的頭像 發(fā)表于 04-23 17:05 ?442次閱讀

    PT32L031系列32位微控制器

    -40~85TSSOP281.2mm PT32L031K6T6324M0481.8~3.626221222224~252432212ext +1int22???4?8-40-85LQFP32 (7?
    發(fā)表于 04-21 09:07

    安森美NVNJWS5K0P061L P溝道MOSFET:性能剖析與應用指南

    安森美NVNJWS5K0P061L P溝道MOSFET:性能剖析與應用指南 在電子設計領域,MOSFET作為關鍵的功率開關元件,其性能和特性對電路的穩(wěn)定性和效率起著至關重要的作用。今天,我們將
    的頭像 發(fā)表于 04-19 10:40 ?252次閱讀

    深入解析 onsemi FQD8P10TM-F085 P-Channel MOSFET

    深入解析 onsemi FQD8P10TM-F085 P-Channel MOSFET 在電子設計領域,MOSFET(金屬 - 氧化物 - 半導體場效應晶體管)是一種至關重要的元件,廣泛應用于各種
    的頭像 發(fā)表于 04-14 16:30 ?114次閱讀

    深入解析 onsemi FQD8P10TM-F085 P-Channel MOSFET

    深入解析 onsemi FQD8P10TM-F085 P-Channel MOSFET 在電子設計領域,MOSFET(金屬 - 氧化物 - 半導體場效應晶體管)是一種至關重要的元件,廣泛應用于各種
    的頭像 發(fā)表于 04-14 16:25 ?138次閱讀

    探索 onsemi NTLJS7D2P02P8Z P 溝道 MOSFET 的卓越性能

    探索 onsemi NTLJS7D2P02P8Z P 溝道 MOSFET 的卓越性能 在電子設計領域,MOSFET 作為關鍵的功率開關元件,其性能直接影響著整個系統(tǒng)的效率和穩(wěn)定性。今天,我們將
    的頭像 發(fā)表于 04-14 09:25 ?448次閱讀

    Onsemi NTTFS007P02P8 P溝道MOSFET:高性能與可靠性的完美結合

    Onsemi NTTFS007P02P8 P溝道MOSFET:高性能與可靠性的完美結合 在電子設計領域,MOSFET作為一種關鍵的半導體器件,廣泛應用于各種電路中。今天,我們將深入探討Onsemi
    的頭像 發(fā)表于 04-10 11:25 ?221次閱讀

    onsemi NVMFS025P04M8L P溝道MOSFET:設計實用指南

    onsemi NVMFS025P04M8L P溝道MOSFET:設計實用指南 作為一名電子工程師,在設計中選擇合適的MOSFET至關重要。今天我們來詳細探討onsemi的NVMFS025P04M8L
    的頭像 發(fā)表于 04-07 14:05 ?179次閱讀

    深入解析 onsemi NVMFS9D6P04M8L P 溝道 MOSFET

    深入解析 onsemi NVMFS9D6P04M8L P 溝道 MOSFET 在電子設計領域,MOSFET 是不可或缺的功率器件,其性能直接影響電路的效率和穩(wěn)定性。今天我們來深入了解 onsemi
    的頭像 發(fā)表于 04-03 15:20 ?588次閱讀

    深入解析 onsemi NVTFS052P04M8L P 溝道 MOSFET

    深入解析 onsemi NVTFS052P04M8L P 溝道 MOSFET 在電子設計領域,MOSFET 作為關鍵的功率器件,其性能直接影響著電路的效率和穩(wěn)定性。今天,我們就來詳細探討
    的頭像 發(fā)表于 04-02 14:20 ?217次閱讀

    PT32L005&;amp;F005系列32位微控制器

    PT32L005&;amp;F005系列32位微控制器PT32L005&;amp;F
    發(fā)表于 03-05 08:51

    C語言指針p、*p、&amp;amp;p、*&amp;amp;p、&amp;amp;*p分別代表什么

    * p和 *p又代表什么嗎? 寫個測試程序下面是一個簡單的C語言代碼,可以用來演示上面提到的幾個標識符,讓我們更好的理解幾個標識符的意義: #include int main() { int a = 10
    發(fā)表于 01-07 07:34

    cw32l010 I2C的狀態(tài)切換要清除狀態(tài)嗎?

    ------------------- I2C_ErrorDef I2C_QMA6100P_SEQ_READ(I2C_TypeDef *I2Cx, uint8_t regAddr, uint8
    發(fā)表于 12-01 06:27

    CW32L010F8P600的優(yōu)勢

    CW32L010F8P600的優(yōu)勢包括: 超大Flash存儲容量:擁有64K超大Flash存儲容量,數(shù)據(jù)可保持25年@-40℃至+85℃,還支持多種保護功能。它能確保高訪問速度,滿足實時性要求高
    發(fā)表于 11-13 07:07

    案例研究:Atola Taskforce 2 借助 MB699VP-B &amp;amp;amp; MB705M2P-B 優(yōu)化取證設備數(shù)據(jù)采集

    案例研究:AtolaTaskforce2借助MB699VP-B&amp;MB705M2P-B優(yōu)化取證設備數(shù)據(jù)采集概述AtolaTechnology是作為數(shù)據(jù)取證解決方案領域的領導者,開發(fā)
    的頭像 發(fā)表于 08-14 17:00 ?1121次閱讀
    案例研究:Atola Taskforce 2 借助 MB699VP-B &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; MB705M2<b class='flag-5'>P</b>-B 優(yōu)化取證設備數(shù)據(jù)采集
    元谋县| 阳曲县| 华阴市| 东宁县| 清徐县| 边坝县| 类乌齐县| 平远县| 新建县| 灵武市| 武鸣县| 华坪县| 涪陵区| 仪陇县| 剑川县| 华池县| 宁强县| 庆元县| 远安县| 深泽县| 灌南县| 石城县| 平江县| 仁寿县| 黄平县| 咸丰县| 将乐县| 蓬莱市| 来安县| 利津县| 开封市| 治县。| 寻甸| 那坡县| 江北区| 荣昌县| 桐梓县| 雅江县| 广昌县| 壤塘县| 灌南县|