Documentation
¶
Overview ¶
Package i2c provides interface to Inter-integrated Circuit Interface.
Peripheral: I2C_Periph Inter-integrated Circuit Interface. Instances:
I2C1 mmap.I2C1_BASE I2C2 mmap.I2C2_BASE
Registers:
0x00 16 CR1 Control register 1. 0x04 16 CR2 Control register 2. 0x08 16 OAR1 Own address register 1. 0x0C 16 OAR2 Own address register 2. 0x10 16 DR Data register. 0x14 16 SR1 Status register 1. 0x18 16 SR2 Status register 2. 0x1C 16 CCR Clock control register. 0x20 16 TRISE TRISE register.
Import:
stm32/o/l1xx_md/mmap
Index ¶
- Constants
- Variables
- type CCR
- type CR1
- type CR2
- type DR
- type I2C_Periph
- func (p *I2C_Periph) ACK() RMCR1
- func (p *I2C_Periph) ADD0() RMOAR1
- func (p *I2C_Periph) ADD10() RMSR1
- func (p *I2C_Periph) ADD1_7() RMOAR1
- func (p *I2C_Periph) ADD8_9() RMOAR1
- func (p *I2C_Periph) ADDMODE() RMOAR1
- func (p *I2C_Periph) ADDR() RMSR1
- func (p *I2C_Periph) AF() RMSR1
- func (p *I2C_Periph) ALERT() RMCR1
- func (p *I2C_Periph) ARLO() RMSR1
- func (p *I2C_Periph) BERR() RMSR1
- func (p *I2C_Periph) BTF() RMSR1
- func (p *I2C_Periph) BUSY() RMSR2
- func (p *I2C_Periph) BaseAddr() uintptr
- func (p *I2C_Periph) CCRVAL() RMCCR
- func (p *I2C_Periph) DMAEN() RMCR2
- func (p *I2C_Periph) DUALF() RMSR2
- func (p *I2C_Periph) DUTY() RMCCR
- func (p *I2C_Periph) ENARP() RMCR1
- func (p *I2C_Periph) ENDUAL() RMOAR2
- func (p *I2C_Periph) ENGC() RMCR1
- func (p *I2C_Periph) ENPEC() RMCR1
- func (p *I2C_Periph) FREQ() RMCR2
- func (p *I2C_Periph) FS() RMCCR
- func (p *I2C_Periph) GENCALL() RMSR2
- func (p *I2C_Periph) ITBUFEN() RMCR2
- func (p *I2C_Periph) ITERREN() RMCR2
- func (p *I2C_Periph) ITEVTEN() RMCR2
- func (p *I2C_Periph) LAST() RMCR2
- func (p *I2C_Periph) MSL() RMSR2
- func (p *I2C_Periph) NOSTRETCH() RMCR1
- func (p *I2C_Periph) OVR() RMSR1
- func (p *I2C_Periph) PE() RMCR1
- func (p *I2C_Periph) PEC() RMCR1
- func (p *I2C_Periph) PECERR() RMSR1
- func (p *I2C_Periph) PECVAL() RMSR2
- func (p *I2C_Periph) POS() RMCR1
- func (p *I2C_Periph) RXNE() RMSR1
- func (p *I2C_Periph) SB() RMSR1
- func (p *I2C_Periph) SECADD1_7() RMOAR2
- func (p *I2C_Periph) SMBALERT() RMSR1
- func (p *I2C_Periph) SMBDEFAULT() RMSR2
- func (p *I2C_Periph) SMBHOST() RMSR2
- func (p *I2C_Periph) SMBTYPE() RMCR1
- func (p *I2C_Periph) SMBUS() RMCR1
- func (p *I2C_Periph) START() RMCR1
- func (p *I2C_Periph) STOP() RMCR1
- func (p *I2C_Periph) STOPF() RMSR1
- func (p *I2C_Periph) SWRST() RMCR1
- func (p *I2C_Periph) TIMEOUT() RMSR1
- func (p *I2C_Periph) TRA() RMSR2
- func (p *I2C_Periph) TXE() RMSR1
- type OAR1
- type OAR2
- type RCCR
- type RCR1
- type RCR2
- type RDR
- type RMCCR
- type RMCR1
- type RMCR2
- type RMDR
- type RMOAR1
- type RMOAR2
- type RMSR1
- type RMSR2
- type RMTRISE
- type ROAR1
- type ROAR2
- type RSR1
- type RSR2
- type RTRISE
- type SR1
- type SR2
- type TRISE
Constants ¶
View Source
const ( PEn = 0 SMBUSn = 1 SMBTYPEn = 3 ENARPn = 4 ENPECn = 5 ENGCn = 6 NOSTRETCHn = 7 STARTn = 8 STOPn = 9 ACKn = 10 POSn = 11 PECn = 12 ALERTn = 13 SWRSTn = 15 )
View Source
const ( FREQn = 0 ITERRENn = 8 ITEVTENn = 9 ITBUFENn = 10 DMAENn = 11 LASTn = 12 )
View Source
const ( ADD1_7n = 1 ADD8_9n = 8 ADD0n = 0 ADDMODEn = 15 )
View Source
const ( ENDUALn = 0 SECADD1_7n = 1 )
View Source
const ( SBn = 0 ADDRn = 1 BTFn = 2 ADD10n = 3 STOPFn = 4 RXNEn = 6 TXEn = 7 BERRn = 8 ARLOn = 9 AFn = 10 OVRn = 11 PECERRn = 12 TIMEOUTn = 14 SMBALERTn = 15 )
View Source
const ( MSLn = 0 BUSYn = 1 TRAn = 2 GENCALLn = 4 SMBDEFAULTn = 5 SMBHOSTn = 6 DUALFn = 7 PECVALn = 8 )
View Source
const ( CCRVALn = 0 DUTYn = 14 FSn = 15 )
Variables ¶
View Source
var I2C1 = (*I2C_Periph)(unsafe.Pointer(uintptr(mmap.I2C1_BASE)))
View Source
var I2C2 = (*I2C_Periph)(unsafe.Pointer(uintptr(mmap.I2C2_BASE)))
Functions ¶
This section is empty.
Types ¶
type CR1 ¶
type CR1 uint16
const ( PE CR1 = 0x01 << 0 //+ Peripheral Enable. SMBUS CR1 = 0x01 << 1 //+ SMBus Mode. SMBTYPE CR1 = 0x01 << 3 //+ SMBus Type. ENARP CR1 = 0x01 << 4 //+ ARP Enable. ENPEC CR1 = 0x01 << 5 //+ PEC Enable. ENGC CR1 = 0x01 << 6 //+ General Call Enable. NOSTRETCH CR1 = 0x01 << 7 //+ Clock Stretching Disable (Slave mode). START CR1 = 0x01 << 8 //+ Start Generation. STOP CR1 = 0x01 << 9 //+ Stop Generation. ACK CR1 = 0x01 << 10 //+ Acknowledge Enable. POS CR1 = 0x01 << 11 //+ Acknowledge/PEC Position (for data reception). PEC CR1 = 0x01 << 12 //+ Packet Error Checking. ALERT CR1 = 0x01 << 13 //+ SMBus Alert. SWRST CR1 = 0x01 << 15 //+ Software Reset. )
type CR2 ¶
type CR2 uint16
const ( FREQ CR2 = 0x3F << 0 //+ FREQ[5:0] bits (Peripheral Clock Frequency). FREQ_0 CR2 = 0x01 << 0 // Bit 0. FREQ_1 CR2 = 0x02 << 0 // Bit 1. FREQ_2 CR2 = 0x04 << 0 // Bit 2. FREQ_3 CR2 = 0x08 << 0 // Bit 3. FREQ_4 CR2 = 0x10 << 0 // Bit 4. FREQ_5 CR2 = 0x20 << 0 // Bit 5. ITERREN CR2 = 0x01 << 8 //+ Error Interrupt Enable. ITEVTEN CR2 = 0x01 << 9 //+ Event Interrupt Enable. ITBUFEN CR2 = 0x01 << 10 //+ Buffer Interrupt Enable. DMAEN CR2 = 0x01 << 11 //+ DMA Requests Enable. LAST CR2 = 0x01 << 12 //+ DMA Last Transfer. )
type I2C_Periph ¶
type I2C_Periph struct { CR1 RCR1 CR2 RCR2 OAR1 ROAR1 OAR2 ROAR2 DR RDR SR1 RSR1 SR2 RSR2 CCR RCCR TRISE RTRISE // contains filtered or unexported fields }
func (*I2C_Periph) ACK ¶
func (p *I2C_Periph) ACK() RMCR1
func (*I2C_Periph) ADD0 ¶
func (p *I2C_Periph) ADD0() RMOAR1
func (*I2C_Periph) ADD10 ¶
func (p *I2C_Periph) ADD10() RMSR1
func (*I2C_Periph) ADD1_7 ¶
func (p *I2C_Periph) ADD1_7() RMOAR1
func (*I2C_Periph) ADD8_9 ¶
func (p *I2C_Periph) ADD8_9() RMOAR1
func (*I2C_Periph) ADDMODE ¶
func (p *I2C_Periph) ADDMODE() RMOAR1
func (*I2C_Periph) ADDR ¶
func (p *I2C_Periph) ADDR() RMSR1
func (*I2C_Periph) AF ¶
func (p *I2C_Periph) AF() RMSR1
func (*I2C_Periph) ALERT ¶
func (p *I2C_Periph) ALERT() RMCR1
func (*I2C_Periph) ARLO ¶
func (p *I2C_Periph) ARLO() RMSR1
func (*I2C_Periph) BERR ¶
func (p *I2C_Periph) BERR() RMSR1
func (*I2C_Periph) BTF ¶
func (p *I2C_Periph) BTF() RMSR1
func (*I2C_Periph) BUSY ¶
func (p *I2C_Periph) BUSY() RMSR2
func (*I2C_Periph) BaseAddr ¶
func (p *I2C_Periph) BaseAddr() uintptr
func (*I2C_Periph) CCRVAL ¶
func (p *I2C_Periph) CCRVAL() RMCCR
func (*I2C_Periph) DMAEN ¶
func (p *I2C_Periph) DMAEN() RMCR2
func (*I2C_Periph) DUALF ¶
func (p *I2C_Periph) DUALF() RMSR2
func (*I2C_Periph) DUTY ¶
func (p *I2C_Periph) DUTY() RMCCR
func (*I2C_Periph) ENARP ¶
func (p *I2C_Periph) ENARP() RMCR1
func (*I2C_Periph) ENDUAL ¶
func (p *I2C_Periph) ENDUAL() RMOAR2
func (*I2C_Periph) ENGC ¶
func (p *I2C_Periph) ENGC() RMCR1
func (*I2C_Periph) ENPEC ¶
func (p *I2C_Periph) ENPEC() RMCR1
func (*I2C_Periph) FREQ ¶
func (p *I2C_Periph) FREQ() RMCR2
func (*I2C_Periph) FS ¶
func (p *I2C_Periph) FS() RMCCR
func (*I2C_Periph) GENCALL ¶
func (p *I2C_Periph) GENCALL() RMSR2
func (*I2C_Periph) ITBUFEN ¶
func (p *I2C_Periph) ITBUFEN() RMCR2
func (*I2C_Periph) ITERREN ¶
func (p *I2C_Periph) ITERREN() RMCR2
func (*I2C_Periph) ITEVTEN ¶
func (p *I2C_Periph) ITEVTEN() RMCR2
func (*I2C_Periph) LAST ¶
func (p *I2C_Periph) LAST() RMCR2
func (*I2C_Periph) MSL ¶
func (p *I2C_Periph) MSL() RMSR2
func (*I2C_Periph) NOSTRETCH ¶
func (p *I2C_Periph) NOSTRETCH() RMCR1
func (*I2C_Periph) OVR ¶
func (p *I2C_Periph) OVR() RMSR1
func (*I2C_Periph) PE ¶
func (p *I2C_Periph) PE() RMCR1
func (*I2C_Periph) PEC ¶
func (p *I2C_Periph) PEC() RMCR1
func (*I2C_Periph) PECERR ¶
func (p *I2C_Periph) PECERR() RMSR1
func (*I2C_Periph) PECVAL ¶
func (p *I2C_Periph) PECVAL() RMSR2
func (*I2C_Periph) POS ¶
func (p *I2C_Periph) POS() RMCR1
func (*I2C_Periph) RXNE ¶
func (p *I2C_Periph) RXNE() RMSR1
func (*I2C_Periph) SB ¶
func (p *I2C_Periph) SB() RMSR1
func (*I2C_Periph) SECADD1_7 ¶
func (p *I2C_Periph) SECADD1_7() RMOAR2
func (*I2C_Periph) SMBALERT ¶
func (p *I2C_Periph) SMBALERT() RMSR1
func (*I2C_Periph) SMBDEFAULT ¶
func (p *I2C_Periph) SMBDEFAULT() RMSR2
func (*I2C_Periph) SMBHOST ¶
func (p *I2C_Periph) SMBHOST() RMSR2
func (*I2C_Periph) SMBTYPE ¶
func (p *I2C_Periph) SMBTYPE() RMCR1
func (*I2C_Periph) SMBUS ¶
func (p *I2C_Periph) SMBUS() RMCR1
func (*I2C_Periph) START ¶
func (p *I2C_Periph) START() RMCR1
func (*I2C_Periph) STOP ¶
func (p *I2C_Periph) STOP() RMCR1
func (*I2C_Periph) STOPF ¶
func (p *I2C_Periph) STOPF() RMSR1
func (*I2C_Periph) SWRST ¶
func (p *I2C_Periph) SWRST() RMCR1
func (*I2C_Periph) TIMEOUT ¶
func (p *I2C_Periph) TIMEOUT() RMSR1
func (*I2C_Periph) TRA ¶
func (p *I2C_Periph) TRA() RMSR2
func (*I2C_Periph) TXE ¶
func (p *I2C_Periph) TXE() RMSR1
type OAR1 ¶
type OAR1 uint16
const ( ADD1_7 OAR1 = 0x7F << 1 //+ Interface Address. ADD8_9 OAR1 = 0x03 << 8 //+ Interface Address. ADD0 OAR1 = 0x01 << 0 //+ Bit 0. ADD1 OAR1 = 0x01 << 1 // Bit 1. ADD2 OAR1 = 0x02 << 1 // Bit 2. ADD3 OAR1 = 0x04 << 1 // Bit 3. ADD4 OAR1 = 0x08 << 1 // Bit 4. ADD5 OAR1 = 0x10 << 1 // Bit 5. ADD6 OAR1 = 0x20 << 1 // Bit 6. ADD7 OAR1 = 0x40 << 1 // Bit 7. ADD8 OAR1 = 0x01 << 8 // Bit 8. ADD9 OAR1 = 0x02 << 8 // Bit 9. ADDMODE OAR1 = 0x01 << 15 //+ Addressing Mode (Slave mode). )
type SR1 ¶
type SR1 uint16
const ( SB SR1 = 0x01 << 0 //+ Start Bit (Master mode). ADDR SR1 = 0x01 << 1 //+ Address sent (master mode)/matched (slave mode). BTF SR1 = 0x01 << 2 //+ Byte Transfer Finished. ADD10 SR1 = 0x01 << 3 //+ 10-bit header sent (Master mode). STOPF SR1 = 0x01 << 4 //+ Stop detection (Slave mode). RXNE SR1 = 0x01 << 6 //+ Data Register not Empty (receivers). TXE SR1 = 0x01 << 7 //+ Data Register Empty (transmitters). BERR SR1 = 0x01 << 8 //+ Bus Error. ARLO SR1 = 0x01 << 9 //+ Arbitration Lost (master mode). AF SR1 = 0x01 << 10 //+ Acknowledge Failure. OVR SR1 = 0x01 << 11 //+ Overrun/Underrun. PECERR SR1 = 0x01 << 12 //+ PEC Error in reception. TIMEOUT SR1 = 0x01 << 14 //+ Timeout or Tlow Error. SMBALERT SR1 = 0x01 << 15 //+ SMBus Alert. )
type SR2 ¶
type SR2 uint16
const ( MSL SR2 = 0x01 << 0 //+ Master/Slave. BUSY SR2 = 0x01 << 1 //+ Bus Busy. TRA SR2 = 0x01 << 2 //+ Transmitter/Receiver. GENCALL SR2 = 0x01 << 4 //+ General Call Address (Slave mode). SMBDEFAULT SR2 = 0x01 << 5 //+ SMBus Device Default Address (Slave mode). SMBHOST SR2 = 0x01 << 6 //+ SMBus Host Header (Slave mode). DUALF SR2 = 0x01 << 7 //+ Dual Flag (Slave mode). PECVAL SR2 = 0xFF << 8 //+ Packet Error Checking Register. )
Click to show internal directories.
Click to hide internal directories.