91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

STM32 模擬SPI 一主多從

資源截圖

代碼片段和文件信息

#include?“TestSPI.h“



/*?SPI端口初始化?*/??
void?SPI1_Init()
{??
GPIO_InitTypeDef?GPIO_InitStructure;

RCC_AHB1PeriphClockCmd(SPI_CLK_PERIPH?ENABLE); //?使能GPIO時鐘
RCC_AHB1PeriphClockCmd(SPI_MISO_PERIPH?ENABLE); //?使能GPIO時鐘
RCC_AHB1PeriphClockCmd(SPI_MOSI_PERIPH?ENABLE); //?使能GPIO時鐘
RCC_AHB1PeriphClockCmd(LSM303D_SPI_NSS_PERIPH?ENABLE); //?使能GPIO時鐘
RCC_AHB1PeriphClockCmd(L3GD20_SPI_NSS_PERIPH?ENABLE); //?使能GPIO時鐘
?
??//SPI?CLK?GPIO設置
??GPIO_InitStructure.GPIO_Pin?=?SPI_CLK_PIN;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_OUT;
??GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;
??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_UP; //?上拉
??GPIO_Init(SPI_CLK_PORT?&GPIO_InitStructure);

//SPI?MOSI?GPIO設置
GPIO_InitStructure.GPIO_Pin?=?SPI_MOSI_PIN;
??GPIO_Init(SPI_MOSI_PORT?&GPIO_InitStructure);

//SPI?L3GD20?NSS?GPIO設置
GPIO_InitStructure.GPIO_Pin?=?L3GD20_SPI_NSS_PIN;
GPIO_Init(L3GD20_SPI_NSS_PORT?&GPIO_InitStructure);

//SPI?LSM303D?NSS?GPIO設置
GPIO_InitStructure.GPIO_Pin?=?LSM303D_SPI_NSS_PIN;
GPIO_Init(LSM303D_SPI_NSS_PORT?&GPIO_InitStructure);

//SPI?MISO?GPIO設置
GPIO_InitStructure.GPIO_Pin?=?SPI_MISO_PIN;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN;
GPIO_Init(SPI_MISO_PORT?&GPIO_InitStructure);

//拉低SCK和MOSI
GPIO_ResetBits(SPI_CLK_PORT?SPI_CLK_PIN); //?拉低
GPIO_ResetBits(SPI_MOSI_PORT?SPI_MOSI_PIN); //?拉低

//拉高片選線
GPIO_SetBits(LSM303D_SPI_NSS_PORT?LSM303D_SPI_NSS_PIN); //?拉高
GPIO_SetBits(L3GD20_SPI_NSS_PORT?L3GD20_SPI_NSS_PIN); //?拉高
}??

/*??
LSM303D使能??
enable:為1時,使能信號有效,SS低電平??
為0時,使能信號無效,SS高電平??
*/??
void?LSM303D_SS_Enable(int?enable)
{??
if?(enable)
{
GPIO_ResetBits(LSM303D_SPI_NSS_PORT?LSM303D_SPI_NSS_PIN); //SS低電平,從設備使能有效??
}
else??
{
GPIO_SetBits(LSM303D_SPI_NSS_PORT?LSM303D_SPI_NSS_PIN); //SS高電平,從設備使能無效??
}
}

/*??
L3GD20使能??
enable:為1時,使能信號有效,SS低電平??
為0時,使能信號無效,SS高電平??
*/??
void?L3GD20_SS_Enable(int?enable)
{??
if?(enable)
{
GPIO_ResetBits(L3GD20_SPI_NSS_PORT?L3GD20_SPI_NSS_PIN); //SS低電平,從設備使能有效??
}
else??
{
GPIO_SetBits(L3GD20_SPI_NSS_PORT?L3GD20_SPI_NSS_PIN); //SS高電平,從設備使能無效??
}
}

//?設置GPIO的值
void?Set_GPIO_Value(GPIO_TypeDef*?GPIOx?uint16_t?GPIO_Pin?uint8_t?Value)
{
if?(Value)
{
GPIO_SetBits(GPIOx?GPIO_Pin); //SS高電平,從設備使能無效??
}
else??
{
GPIO_ResetBits(GPIOx?GPIO_Pin); //SS低電平,從設備使能有效??
}
}

uint8_t?Simulate_SPI_SendByte(uint8_t?dt)
{
u8?i?=?0?temp?=?0?nMISO?=?0;

for(i?=?8;?i?>?0;?i--)
{
if(dt?&?0x80)
{
Set_GPIO_Value(SPI_MOSI_PORT?SPI_MOSI_PIN?1);//MOSI_H;
}
else
{
Set_GPIO_Value(SPI_MOSI_PORT?SPI_MOSI_PIN?0);//MOSI_L;
}

dt?<<=?1;
Set_GPIO_Value(SPI_CLK_PORT?SPI_CLK_PIN?1);//SCLK_H;
__nop();
__nop();
__nop();
temp?<<=?1;
nMISO?=?GPIO_ReadInputDataBit(SPI_MISO_PORT?SPI_MISO_PIN);
if(nMISO)
{
temp++;

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????3353??2016-05-26?20:21??SimulationSPI1\TestSPI.c

?????文件???????1275??2016-05-26?20:16??SimulationSPI1\TestSPI.h

?????目錄??????????0??2016-05-26?20:29??SimulationSPI1

-----------?---------??----------?-----??----

?????????????????4628????????????????????3


評論

共有 條評論