spi (serial peripheral interface),顾名思义就是串行外围设备接口。spi是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为pcb的布局上节省空间,提供方便,主要应用在 eeprom,flash,实时时钟,ad转换器,还有数字信号处理器和数字信号解码器之间。
spi内部简明结构图
关于spi传输过程(下面由灵魂画家作图)
spi包含四根线:
1、ss(slave select):片选信号线,当有多个spi设备与mcu相连时,每个设备的这个片选信号线是与mcu单独的引脚相连的,而其他sck,mosi,miso线则为多个设备并联到相同的spi总线上,当ss信号线为低电平时,片选有效,开始spi通信
2、sck(serial clock):时钟信号线,由主通信设备产生,不同的设备支持的时钟频率不一样。
3、mosi(master output,slave input):主设备输出、从设备输入引脚
4、miso(master input,slave output):主设备输入、从设备输出引脚
关于spi模式
根据spi时钟极性(cpol)和时钟相位(cpha)配置的不同可分为4种模式
时钟极性是指spi通信设备处于空闲状态时(或spi通信开始时,即ss为低电平时),sck的电平信号cpol=0时,sck空闲状态为低电平,cpol=1时则相反。
时钟相位是指数据采样的时刻,当cpha=0时,mosi或miso数据线会在时钟线第一个边沿开始采样(奇数边沿)
当cpha=1时,mosi或miso数据线会在时钟线第二个边沿开始采样(偶数边沿)
步骤分析:ss片选信号线拉低-->根据cpol和cpha进行数据采样
stm32 spi接口框图
stm32 spi配置过程
1、配置相关引脚的复用功能,使能spix时钟
void gpio_init(gpio_typedef* gpiox, gpio_inittypedef* gpio_initstruct);
2、初始化spix,设置spix工作模式
void spi_init(spi_typedef* spix, spi_inittypedef* spi_initstruct);
3、使能spix
void spi_cmd(spi_typedef* spix, functionalstate newstate);
4、spi传输数据
void spi_i2s_senddata(spi_typedef* spix, uint16_t data);
uint16_t spi_i2s_receivedata(spi_typedef* spix);
5、查看spi传输状态
flagstatus spi_i2s_getflagstatus(spi_typedef* spix, uint16_t spi_i2s_flag);
2025年我国智能医疗机器人市场规模将突破百亿元
爱美妹子的福音啊~零售圈激动了 拥有这样一台无人彩妆机可能是每个女生的终极梦想吧
TI 高级 ADAS 功能重新诠释自主驾驶新体验!
现代已经开发出一种汽车系统 将支持指纹识别
IBM助力上海水利科技推进数字孪生水利工程建设
关于SPI传输过程 stm32 SPI配置
什么是驱动电机旋转变压器?驱动电机旋转变压器的优势
汇顶科技最新消息 澄清涨价消息 仅针对一小部分触控产品
华为怎样升级鸿蒙系统 华为nova6支持鸿蒙系统吗
宁德时代上游原材料资源布局解读
带有ECC的256Kx16高速异步SRAM
基于6SQ7-GT和6V6-GT的立体声电子管放大器电路图
工业互联网将为集成电路产业带来新的发展机会
5G时代正式来临,预计vivo 5G手机出货量就高达55万台
《超级电容器材料及结构形式-2020版》
红米品牌独立Redmi带着新使命向未来前进
印度正在倡议政府尽可能快地管制或禁止比特币
轻薄笔记本的代表作Air Book笔记本推荐!
高级ios工程师和初级工程师有什么区别
寄存器阵列低功耗设计方案