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寄存器立即触发发送,不需要额外操作 - 从机模式下,片选低电平有效,选中后发送,时钟由主机提供
接收机制
- 只要有发送,就会同步接收
PUC或UCSWRSTbit置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进制表示
