stm32 io模拟spi通信
来源:互联网 发布:苹果手机游戏推荐 知乎 编辑:程序博客网 时间:2024/06/09 20:15
首先借鉴他人的编写程序:
#define MOSI_H GPIO_SetBits(GPIOB, GPIO_Pin_10) #define MOSI_L GPIO_ResetBits(GPIOB, GPIO_Pin_10) #define SCLK_H GPIO_SetBits(GPIOB, GPIO_Pin_13) #define SCLK_L GPIO_ResetBits(GPIOB, GPIO_Pin_13) #define MISO GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11) unsigned char SPI_SendByte(unsigned char dt) { u8 i; u8 temp=0; for(i=8;i>0;i--) { if(dt&0x80)MOSI_H; else MOSI_L; dt<<=1; SCLK_H; __nop(); __nop(); __nop(); temp<<=1; if(MISO)temp++; __nop(); __nop(); __nop(); SCLK_L; } return temp; }最后实现自己需要的一个spi主机程序,协议规定CPOL=1,CPHA=1,高位在前,地位在后发送
#define MOSI_H GPIO_SetBits(GPIOF, GPIO_Pin_2)#define MOSI_L GPIO_ResetBits(GPIOF, GPIO_Pin_2)#define SCLK_H GPIO_SetBits(GPIOF, GPIO_Pin_1)#define SCLK_L GPIO_ResetBits(GPIOF, GPIO_Pin_1)#define CS_H GPIO_SetBits(GPIOF, GPIO_Pin_0)#define CS_L GPIO_ResetBits(GPIOF, GPIO_Pin_0)
void SPI_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE); //使能PF端口时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2; //PF 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_Init(GPIOF, &GPIO_InitStructure); //根据设定参数初始化GPIOF GPIO_SetBits(GPIOF,GPIO_Pin_0); //PF0 PF1 PF2 输出高 GPIO_SetBits(GPIOF,GPIO_Pin_1); GPIO_SetBits(GPIOF,GPIO_Pin_2);} unsigned char SPI_SendByte(unsigned char dt){u8 i;u8 temp=0;for(i=8;i>0;i--){CS_L;if(dt&0x80)MOSI_H;else MOSI_L;dt<<=1;SCLK_L;__nop();__nop();__nop();__nop();__nop();__nop();SCLK_H;}CS_H;return temp;}
0 0
- stm32 io模拟spi通信
- STM32模拟SPI接口
- STM32之间SPI通信
- STM32 SPI 通信
- STM32 SPI DMA通信
- STM32之SPI通信
- 普通IO口模拟实现SPI通信及应用解析
- IO口模拟SPI
- IO口模拟SPI
- IO 模拟 SPI协议
- spi驱动--IO模拟
- DM642 模拟SPI通信
- 单片机模拟spi通信
- STM32模拟SPI接口程序
- s5pv210与stm32 spi通信
- stm32 SPI通信 操作寄存器
- stm32驱动3.2寸触摸屏(包括IO模拟,SPI硬件接口)
- 关于IO口模拟SPI
- 数据结构_线性表_链式存储_单向循环链表的基本操作
- mysql查找表、触发器、存储过程或函数
- java中Comparator比较器的使用
- 【模板】KMP
- POJ3268最短路水题
- stm32 io模拟spi通信
- Dictionary
- Spring SpringMVC文件上传错误(二)
- C++ 动态链接库和静态链接库
- Android ListView单选CheckBox
- JavaScript之严格模式 "use strict";
- 屌丝们如何突破屌丝固有的穷人思维!
- ORACLE触发器详解
- leetcode.307. Range Sum Query - Mutable 树状数组