资源简介
英飞凌磁传感器 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_TLE5012B\Infineon-TLE5012B_E1000-DS-v02_00-en.pdf
文件 3508 2017-05-13 19:35 spi_TLE5012B\spi_TLE5012B.c
文件 3040 2017-05-13 19:37 spi_TLE5012B\spi_TLE5012B.h
文件 768238 2017-05-08 11:08 spi_TLE5012B\基于iGMR原理角度传感器TLE5012B应用指导.pdf
- 上一篇:网易云信Im即时通信服务端
- 下一篇:文本文件字符串的检索和计数KMP算法
评论
共有 条评论