英飞凌磁传感器 TLE5012b STM32F103 SPI 源码 及 Datasheet


英飞凌磁传感器 TLE5012b_E1000 STM32F103 SPI 源码 及 Datasheet,内含简单原理图接线说明等。详情看 *。h 文件。一般调用 1: SPI5012B_Init(); 2: ReadAngle();
资源截图
代码片段和文件信息
/**
  ******************************************************************************
  * @file    spi_TLE5012B.c
  * @author  Keith Cheung
  * @version V3.5.0
  * @date    13-MAY-2017
  * @brief   This file contains the headers of the spi_TLE5012B.
  ******************************************************************************
  * @attention
  *
  *
  * 

© COPYRIGHT 2017


  ******************************************************************************
  */

#include “stm32f10x.h“
#include “spi_TLE5012B.h“
//#include “PublicSet.h“

//uint16_t TLE_AngleAngle_SpeedTLE_Offset_Angle;

//spi_TLE5012B.H 中有简要说明

void Delay( uint16_t i )
{
   while( i-- );
}


void SPI5012B_Init(void)
{
SPI_InitTypeDef  SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd( RCC_APB2Periph_SPI1ENABLE );

//以下二句,在它处声明,请增加使用
//RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |RCC_APB2Periph_AFIO ENABLE);
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_DisableENABLE);//使JTDO、JTDI、JTCK 当成普通IO口进行操作
//GPIOB0 当成普通IO口进行操作

/*SPI: NSSSCKMISO and MOSI */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//PA5--CLK--复用推挽
GPIO_Init(GPIOA &GPIO_InitStructure);

//GPIO_StructInit(&GPIO_InitStructure);

/* Configure PA6 as encoder input */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;//PA6--MISO--输入
GPIO_Init(GPIOA &GPIO_InitStructure);

/* PA7*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//PA7--MOSI--推挽输出
GPIO_Init(GPIOA &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_CS_Pin_Name;//PB0--CS--推挽输出
GPIO_Init(GPIO_CS_Pin_Type &GPIO_InitStructure);

/**********SPI****************/
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;//SPI1--双线全双工!!
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;

SPI_Init(SPI1 &SPI_InitStructure);
SPI_Cmd(SPI1 ENABLE);
}


uint16_t SPIx_ReadWriteByte(uint16_t byte)
{
uint16_t retry = 0;
while( (SPI1->SR&1<<1) == 0 )//发送缓冲区非空
{
if( ++retry > 200 )
return 0;//延迟一段时间后返回
}
SPI1->DR = byte;     //发送数据

retry = 0;
while( (SPI1->SR&1<<0) == 0 ) //接收缓冲区为空
{
if( ++retry > 200 )
return 0;//延迟一段时间后返回
}
return SPI1->DR;          //读一下缓冲区,清标志
}


//得到 0~359 度
uint16_t ReadAngle(void)
{
return ( ReadValue(READ_ANGLE_VALUE) * 360 / 0x10000 );
}

//得到角速度
u

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-05-13 19:38  spi_TLE5012B
     文件     2486137  2017-05-08 10:29  spi_TLE5012BInfineon-TLE5012B_E1000-DS-v02_00-en.pdf
     文件        3508  2017-05-13 19:35  spi_TLE5012Bspi_TLE5012B.c
     文件        3040  2017-05-13 19:37  spi_TLE5012Bspi_TLE5012B.h
     文件      768238  2017-05-08 11:08  spi_TLE5012B基于iGMR原理角度传感器TLE5012B应用指导.pdf

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)