摘 要 :以 I2C 通信主控方的要求為基礎(chǔ),討論 I2C 通信從動方的程序編寫。內(nèi)容包括 I2C 通信的起始部分(握手部分)、數(shù)據(jù)傳送部分以及停止部分的程序編寫,以三部分通信波形要求為準,總結(jié)軟件編寫流程。I2C 通信的數(shù)據(jù)格式靈活多樣,可以一次傳送 8 位二進制數(shù)據(jù),也可以一次傳送 8 的倍數(shù)的二進制數(shù)據(jù),從機在通信中必須按照主機的要求進行數(shù)據(jù)傳送。總結(jié)從機的數(shù)據(jù)傳送程序流程,以期滿足主機的通信要求,從而得出 I2C 通信從動模式的詳細總結(jié)。
單通道時,數(shù)據(jù)從串行接收引腳SSI_RXD進來,由接收移位寄存器RXSR傳輸給接收數(shù)據(jù)寄存器SSI_RX0,再根據(jù)用戶設(shè)置情況決定是否產(chǎn)生接收中斷。如果接收緩沖區(qū)RXFIFOO被允許,則SSI_RX0將數(shù)據(jù)寫入RXFIFOO,并繼續(xù)從接收移位寄存器中獲取數(shù)據(jù)。雙通道時,接收移位寄存器RXSR交替將數(shù)據(jù)傳輸給SSI_RX0和SSI_RXl。
因為我看到STM32的USB都沒有對發(fā)送狀態(tài)進行檢測,當多于傳送緩沖器的數(shù)據(jù)要傳送時,估計就會出錯了,所以找下這篇文章,但沒有找到原始作者,但也在此謝過了!STM32的多包數(shù)據(jù)傳送(轉(zhuǎn)貼)SMT32F103,根據(jù)例程 Custo