资源简介
使用GPIO端口模拟SPi协议,可以根据端口设置,自行修改宏定义,修改引脚时钟
代码片段和文件信息
#include “bsp_spi.h“
#include “delay.h“
void SPI_Gpio_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHBPeriphClockCmd(SPI_RCC ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_Pin = SPI_CS_PIN | SPI_CLK_PIN | SPI_MOSI_PIN;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
GPIO_Init(SPI_GPIOx &GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = SPI_MISO_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;
GPIO_Init(SPI_GPIOx &GPIO_InitStruct);
GPIO_SetBits(SPI_GPIOxSPI_CS_PIN);
GPIO_SetBits(SPI_GPIOxSPI_MISO_PIN);
GPIO_ResetBits(SPI_GPIOx SPI_CLK_PIN);
}
void SPI_Send_Data(uint8_t data)
{
uint8_t i=0;
for(i=0 ; i<8 ; i++)
{
if(data & 0x80)
{
GPIO_SetBits(SPI_GPIOx SPI_MOSI_PIN);
}
else
{
GPIO_ResetBits(SPI_GPIOx SPI_MOSI_PIN);
}
data <<=1;
GPIO_SetBits(SPI_GPIOx SPI_CLK_PIN);
delay_us(1);
GPIO_ResetBits(SPI_GPIOx SPI_CLK_PIN);
delay_us(1);
}
}
uint8_t SPI_Get_Data(void)
{
uint8_t i=0;
uint8_t redata=0;
for(i=0 ; i<8 ; i++)
{
GPIO_SetBits(SPI_GPIOx SPI_CLK_PIN);
if(GPIO_ReadInputDataBit(SPI_GPIOx SPI_MISO_PIN))
{
redata |= (0x01<<(7-i));
}
delay_us(1);
GPIO_ResetBits(SPI_GPIOx SPI_CLK_PIN);
delay_us(1);
}
return redata;
}
void SPI_CS_Status(uint8_t status)
{
if(status ==1)
GPIO_SetBits(SPI_GPIOx SPI_CS_PIN);
else if(status ==0)
GPIO_ResetBits(SPI_GPIOx SPI_CS_PIN);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 537 2019-05-22 19:44 bsp_spi.h
文件 1645 2019-05-22 19:44 bsp_spi.c
----------- --------- ---------- ----- ----
2182 2
相关资源
- STM32F407 US100 USART串口超声波
- MPU6050移植DMP库
- STM32F移植到STM32L应用手册中文版
- stm32f10x_dsp库中文手册(FFT)
- STM32F407单通道ADC例程
-
DAPli
nk stm32f103cbt6内核 原理图及使用 - STM32F412工程模板
- artnet for stm32F413+W5500
- RN8302锐能微芯片驱动程序
- STM32F103ZET6核心板原理图和封装库
- PMSM电机的正弦驱动dsPIC30F
- 基于stm32f103zet6de条码识别
- HDC1080 模拟I2C驱动
- stm32 64引脚封装图
- OLED4线SPI改IIC的方法和测试代码
- STM32F429 ADC 双缓冲DMA 中断
- ARM6818电子钢琴
- STM32F1使用内部晶振配置64M时钟
- BMP280的STM32F10X完整程序包IIC方式,可
- stm320f2812控制开关磁阻电机
- STM32驱动MG955舵机的源代码
- STM32指纹密码锁电路图及PCB
- DS2782 美信电量计芯片 IIC STM32/STM8/5
- 适用于2016年电子设计竞赛江苏省以及
- pic单片机spi双机通信
- STM32-DS18B20.zip
- STM32foc ACIM
- STM32 FATFS 移植好的全部源码
- STM32F407驱动LCD12864代码 LCD12864带中文
- 四线两相步进电机控制 Stm32F407 定时
评论
共有 条评论