資源簡介
英飛凌磁傳感器 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算法
評論
共有 條評論