完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
转
【七】Serial communications with SPI 1. mbed SPI master library functions(SPI主机库函数) //建立SPI master连接到SPI通信引脚,如果不手动设置格式和频率的话,默认是8bits, mode=0, 频率1MHz SPI(PinName mosi, PinName miso, PinName sclk, PinName _unused=NC); //设置SPI工作的传输模式和传输一帧的比特数,mode取值为0-3,bits取值为4-16 void format(int bits, int mode = 0); //设置SPI bus clock frequency void frequency(int hz = 1000000); //SPI master向Slave发送数据,返回Slave的返回值 virtual int write(int value); 2. SPI master应用过程: 1. SPI初始化,包括工作模式format,工作频率frequency; 频率要根据从机设备slave device (最高70 MHz) 2. SPI主机的收发 1)主机将从机片选信号(CS) 拉底至0 V 2)接着,主机通过SCLK,传输时钟脉冲,表明数据将要被传输 3)同时,主机通过MOSI发送数据,同时从机通过MISO返回数据 3. SPI Master读写操作: 之前提到,如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节(Dummy Byte)来引发从机的传输。当主机发送一个连续的数据流时,有些外设能够进行多字节传输。多数具有SPI接口的存储芯片就以这种方式工作。在这种传输方式下,从机的片选端必须在整个传输过程中保持低电平。 下面以Bosch BMP280传感器为例: 根据Datasheet所述: (1) SPI 模式:
(2)SPI写操作流程:
其中,片选有效后,发送一个Control byte, 写一个Data byte,然后发送地址增加1后的下一个Control byte, 写Data byte。可以一直写,直到结束然后将CS拉高。 (3)SPI读操作(4线SPI为例):
其中,片选有效后,先发送一个Control byte,而后每发送一个空字节,寄存器地址会自动增加1,读取返回值。直到结束将CS拉高 |
|
相关推荐
|
|
imx6ull裸机编程,使用宏定义无法驱动,使用指针就可以驱动
227 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十二章 音频FFT实验
186 浏览 0 评论
飞凌嵌入式ElfBoard EL 1板卡-i2c与从设备通讯编程示例之i2c-tools工具使用
1243 浏览 0 评论
stc15f2k60s2利用串口传输字模存储到eeprom并进行点阵显示
1567 浏览 1 评论
1540 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11607 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 04:56 , Processed in 0.803670 second(s), Total 65, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号