一、前言
本文是树莓派外围io操作的入门介绍,高手跳过。
前一篇介绍了BCM2835库的init部分,这里接着介绍一下BCM2835的SPI. SPI在BCM2835库文件中有两个相关的文件,一个是spi.c和spin. c; spin.c是多字节连续发送接收的demo。Spin.c是单字节发送的demo。这里主要讲一下spin.c。
BCM2835库的主要代码实现都目录下面的bcm2835.c这个文件里面。Spi部分相关的代码接口一共有11个,分别是:
int bcm2835_spi_begin(void); //
void bcm2835_spi_end(void);
void bcm2835_spi_setBitOrder(uint8_t order);
void bcm2835_spi_setBitOrder(uint8_t order);
void bcm2835_spi_setClockDivider(uint16_t divider);
void bcm2835_spi_setDataMode(uint8_t mode);
void bcm2835_spi_chipSelect(uint8_t cs);
void bcm2835_spi_setChipSelectPolarity(uint8_t cs, uint8_t active);
uint8_t bcm2835_spi_transfer(uint8_t value);
void bcm2835_spi_transfernb(char* tbuf, char* rbuf, uint32_t len);
void bcm2835_spi_transfern(char* buf, uint32_t len);
void bcm2835_spi_writenb(char* buf, uint32_t len);
二、代码分析
下面主要来分析一下spin.c里面
本文是树莓派外围io操作的入门介绍,高手跳过。
前一篇介绍了BCM2835库的init部分,这里接着介绍一下BCM2835的SPI. SPI在BCM2835库文件中有两个相关的文件,一个是spi.c和spin. c; spin.c是多字节连续发送接收的demo。Spin.c是单字节发送的demo。这里主要讲一下spin.c。
BCM2835库的主要代码实现都目录下面的bcm2835.c这个文件里面。Spi部分相关的代码接口一共有11个,分别是:
int bcm2835_spi_begin(void); //
void bcm2835_spi_end(void);
void bcm2835_spi_setBitOrder(uint8_t order);
void bcm2835_spi_setBitOrder(uint8_t order);
void bcm2835_spi_setClockDivider(uint16_t divider);
void bcm2835_spi_setDataMode(uint8_t mode);
void bcm2835_spi_chipSelect(uint8_t cs);
void bcm2835_spi_setChipSelectPolarity(uint8_t cs, uint8_t active);
uint8_t bcm2835_spi_transfer(uint8_t value);
void bcm2835_spi_transfernb(char* tbuf, char* rbuf, uint32_t len);
void bcm2835_spi_transfern(char* buf, uint32_t len);
void bcm2835_spi_writenb(char* buf, uint32_t len);
二、代码分析
下面主要来分析一下spin.c里面