16 MSP430的USCI和SPI

学习笔记
作者: MingXiao

Universal Serial Communication Interface

分为USCI_A和USCI_B,分别支持UART、SPI、I2C

16.1 SPI接口原理

SPI:Serial Peripheral Interface

同步串行外设接口,共四条线

  • CS:片选
  • SCLK:时钟,主机输出
  • MOSI:主机输出;SDI:从机输入
  • MISO:主机输入;SDO:从机输出

读写时序

注意上升沿和下降沿,牛老师认为的是上升沿从机采样,下降沿主机采样,但实际好像不是这样,考到了自己取舍

一般来说是有4种模式,模式0上升沿采样,下降沿输出

多从机架构

注意看哪些是共用的

16.2 SPI接口

主机模式

主机模式下通过移位寄存器和BUFFER配合工作

发送机制

  • 主机模式下,写UCxTXBUF寄存器立即触发发送,不需要额外操作
  • 从机模式下,片选低电平有效,选中后发送,时钟由主机提供

接收机制

  • 只要有发送,就会同步接收

PUCUCSWRSTbit置1将立即停止USCI,并终止任何传输

UCBUSY=1表示USCI收发正在进行

16.3 基于SPI的点阵液晶接口

RS寄存器用来选择输入的是指令还是数据

仅需要连接MOSI,因为显示器是输出设备,不会有输入

# 将特定的区域置为相应的 color 颜色
void etft_AreaSet(uint16_t startX, uint16_t startY, 
                  uint16_t endX, uint16_t endY,
                  uint16_t color);

# 在指定位置显示一个字符串,其字符颜色为fRGB,背景颜色为bRGB
void etft_DisplayString(const char* str, 
                        uint16_t sx, uint16_t sy, /* start x, start y */
                        uint16_t fRGB, uint16_t bRGB);

# 显示图像
void etft_DisplayImage(const uint8_t* image, /* dim = 1 */
                       uint16_t sx, uint16_t sy, 
                       uint16_t width, uint16_t height);

字符的显示像素

用16进制表示



Comments