SC16IS750晶元SPI轉串列埠

2021-09-28 15:37:47 字數 1876 閱讀 6463

手上的乙個專案,由於晶元少一路串列埠,所以使用spi轉,小批量的乙個臨時方案,如果正式方案個人不建議這樣使用。

現象:傳送什麼資料無響應,讀暫存器無響應。

原因:該晶元針對每個暫存器的讀寫都必須單獨設定片選,也就是先拉低片選->操作暫存器->拉高片選->操作下乙個暫存器。千萬不可以拉低片選後操作多個暫存器。

建議**如下:

void

sc16_spi_write_reg

(uint8_t reg, uint8_t value)

現象:對任何暫存器去讀都無資料返回。

原因:針對該晶元,讀暫存器前必須先寫暫存器,寫完再對該暫存器讀0xff。建議如下實現。

void

sc16_spi_read_reg

(uint8_t reg, uint8_t *re**alue)

上面兩個問題通過datasheet沒有找到原因,苦惱了很久,手冊寫的不清楚。

)***.**件

#define rhr 0x00

#define thr 0x00

#define ier 0x01

#define fcr 0x02

#define iir 0x02

#define lcr 0x03

#define mcr 0x04

#define lsr 0x05

#define msr 0x06

#define spr 0x07

#define tcr 0x06

#define tlr 0x07

#define txlvl 0x08

#define rxlvl 0x09

#define iodir 0x0a

#define iostate 0x0b

#define iointena 0x0c

#define iocontrol 0x0e

#define efcr 0x0f

//-------------------------

//special register set

//-------------------------

#define dll 0x00

#define dlh 0x01

//-------------------------

//enhanced register set

//-------------------------

#define efr 0x02

#define xon1 0x04

#define xon2 0x05

#define xoff1 0x06

#define xoff2 0x07

void

sc16_spi_write_data

(uint8_t *data, uint8_t len)

;void

sc16_spi_init

(void);

void

sc16_spi_uninit

(void);

void

sc16_spi_set

(void

);

nrf51822 spi配置引數
#define nrf_drv_spi_default_config                           \

sc輸入輸出

輸入輸出語句 為了從控制台讀寫資料,可以使用以read為字首的方法,包括 readint readdouble readbyte readshort readfloat readlong readchar readboolean及readline,分別對應9種基本資料型別,其中前8種方法沒有引數,r...

SC 刪除Windows服務

sc 刪除windows服務選項2008 07 15 14 25比如要刪除windows的時間服務,操作如下 sc delete w32time sc 刪除windows服務選項 sc windows乙個很有用的命令 sc delete servicename 使用這個命令即可,查詢其它功能用sc ...

位元大陸SC5 SC5 開發必讀

使用者得到了開發sdk包bmnnsdk2 bm1684和docker映象bm1684 ubuntu docker。安裝lib和驅動都是一次性的操作。cd bmnnsdk2 bm1684 v2.2.0 scriptsa x86模式 install lib.sh nntcb arm pcie 模式 in...