|
楼主 |
发表于 2013-6-19 16:56:55
|
显示全部楼层
ksn13 发表于 2013-6-19 16:51
keil4.7 是官方的例程
例程
#if I2C_MASTER_MODE
/* Master Polling Mode */
static void App_I2C_Master_Polling(void)
{
/* Transmit TmpBuffer */
/* Initialize buffer */
Buffer_Init(TmpBuffer, BUFFER_SIZE, 1);
TmpBuffer[0] = I2C_SLAVE_ADDR_7BIT;
param.num_bytes_send = BUFFER_SIZE;
param.buffer_ptr_send = &TmpBuffer[0];
param.stop_flag = 1;
do {
error_code = LPC_I2CD_API->i2c_master_transmit_poll(i2c_handle, ¶m, &result);
} while (error_code);
/* Receive Buffer and compare with TmpBuffer */
/* Initialize buffer */
Buffer_Init(Buffer, BUFFER_SIZE, 0);
Buffer[0] = I2C_SLAVE_ADDR_7BIT | 0x01;
param.num_bytes_recv = BUFFER_SIZE;
param.buffer_ptr_recv = &Buffer[0];
param.stop_flag = 1;
do {
error_code = LPC_I2CD_API->i2c_master_receive_poll(i2c_handle, ¶m, &result);
} while (error_code);
/* Verify */
Buffer_Compare(TmpBuffer, Buffer, 1, BUFFER_SIZE);
/* Transmit TmpBuffer and receive Buffer, then compare them together */
/* Initialize buffer */
Buffer_Init(Buffer, BUFFER_SIZE, 0);
Buffer[0] = I2C_SLAVE_ADDR_7BIT | 0x01;
TmpBuffer[0] = I2C_SLAVE_ADDR_7BIT;
TmpBuffer[1] = 0xBA;
param.num_bytes_send = BUFFER_SIZE;
param.buffer_ptr_send = &TmpBuffer[0];
param.num_bytes_recv = BUFFER_SIZE;
param.buffer_ptr_recv = &Buffer[0];
param.stop_flag = 1;
do {
error_code = LPC_I2CD_API->i2c_master_tx_rx_poll(i2c_handle, ¶m, &result);
} while (error_code);
/* Verify */
Buffer_Compare(TmpBuffer, Buffer, 1, BUFFER_SIZE);
} |
|