基于Mbed平台的SPI接口使用方法

前言

本文不具体详解SPI接口的原理特性等等,只负责解释说明Mbed平台中SPI类的部分公共函数。
笔者目前仍在学习阶段,为了自身能够更好理解才写下本文,如有错误请多多指教。(手动土下座)

Reference

SPI - SPIマスター
SPI - API references and tutorials | Mbed OS 6 Documentation

简单介绍

SPI总线规定了4个保留逻辑信号接口:
1. MOSI - Master Output Slave Input - 主设备输出 从设备输入
2. MISO - Master Input Slave Output - 主设备输入 从设备输出
3. SCLK - Serial Clock - 时钟信号 由主设备发送给从设备
4. SS - Slave Select - 片选信号 由主机发出

其工作模式有4个模式:

ModePolarityPhase
000
101
210
311

Polarity表示极性,按笔者的理解可以大概是指默认传输电平为高还是为低。
Phase表示相位,大概指识别电平开始变化的一瞬间或者电平失去变化的一瞬间。
可以借助下图帮助思考。
在这里插入图片描述

了解到这里有助于理解后面的函数,详细部分请浏览其他文章。

正文

  • 初始化

    SPI (PinName mosi, PinName miso, PinName sclk, PinName ssel=NC)

    SPI name(mosi, miso, sclk);
    // 定义一个名为name的SPI类,且必须输入mosi,miso和sclk的引脚
    
  • 通信模式

    void format (int bits, int mode=0)

    name.format(bits, mode);
    // 配置传输数据的模式,bits指传输数据的比特数,mode为上文提到的工作模式
    
  • 时钟频率

    void frequency (int hz=1000000)

    name.frequency(hz);
    // 设置时钟的频率
    
  • 发送与接收

    virtual int write (int value)

    val = name.write(data);
    // data为发送的数据,val为函数接收到数据时返回的数据
    
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值