LPC1788
使用库函数来操作片内集成的IIC模块。
主要使用库函数提供的
- /* Generate a start condition on I2C bus (in master mode only) */
- static uint32_t I2C_Start (LPC_I2C_TypeDef *I2Cx);
- /* Generate a stop condition on I2C bus (in master mode only) */
- static void I2C_Stop (LPC_I2C_TypeDef *I2Cx);
- /* I2C send byte subroutine */
- static uint32_t I2C_SendByte (LPC_I2C_TypeDef *I2Cx, uint8_t databyte);
- /* I2C get byte subroutine */
- static uint32_t I2C_GetByte (LPC_I2C_TypeDef *I2Cx, uint8_t *retdat, Bool ack);
记得使用之前要进行初始化,
- extern void I2C_init(void)
- {
- PINSEL_ConfigPin (0, 19, 3);//选择引脚为SCL 和SDA
- PINSEL_ConfigPin (0, 20, 3);
- PINSEL_SetOpenDrainMode(0, 19, ENABLE);//使能输出漏极开路
- PINSEL_SetOpenDrainMode(0, 20, ENABLE);
- PINSEL_SetPinMode(0, 19, PINSEL_BASICMODE_PLAINOUT);//使能输入浮空
- PINSEL_SetPinMode(0, 20, PINSEL_BASICMODE_PLAINOUT);
-
- I2C_Init(I2C_1,100000);//初始化IIC1以及时钟10k
- I2C_Cmd(I2C_1,ENABLE);//允许I2C1,使能
- }
更多回帖