完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想在主模式下使用 LPC824 I2C 连续接收两个字节。
一切正常,直到 LPC824(主机)接收到第一个字节(LPC 发送从机地址和从机确认,LPC 发送要读取的寄存器地址和从机确认,然后从机发送第一个字节)。然后,如果主机发送了 ACK,则从机将发送下一个字节,但 LPC824 未发送 ACK,一切都停止了。 如何让 LPC824 在收到第一个字节后发送 ACK? 查看波形,我发现当主机接收到第一个字节时,它只产生 8 个时钟脉冲,因此它缺少 ACK 位的时钟脉冲。 绿色:已确认从属寄存器地址 灰色:第一个字节(缺少来自主机的确认) 黄色:master 发送 NACK 并在一段时间后停止 你知道我能做些什么来解决这个问题吗? |
|
相关推荐
1个回答
|
|
要在主模式下使用 LPC824 I2C 连续接收两个字节,您需要正确设置 LPC824 寄存器和操作序列。以下是使用主角色读取从机寄存器的示例代码:
```c #include "board.h" #include "i2c_common.h" #define I2C_ADDR 0x50 // 从机地址 #define REG_ADDR 0x03 // 要读取的寄存器地址 int main(void) { // 初始化 I2C I2C_Init(LPC_I2C); // 设置主机寄存器并开始传输 I2C_M_SETUP_Type i2cCfg; uint8_t i2cData[2]; // 存储两个字节 i2cData[0] = 0x00; // 第一个字节接收后发送 ACK i2cData[1] = 0x00; // 第二个字节接收后不发送 ACK i2cCfg.sl_addr7bit = I2C_ADDR; i2cCfg.tx_data = ®_ADDR; i2cCfg.tx_length = 1; i2cCfg.rx_data = i2cData; i2cCfg.rx_length = 2; i2cCfg.retransmissions_max = 3; I2C_MasterTransferData(LPC_I2C, &i2cCfg, I2C_TRANSFER_POLLING); // 关闭 I2C I2C_DeInit(LPC_I2C); return 0; } ``` 在上面的代码中,我们首先初始化 LPC824 I2C,并设置一个包含两个字节的缓冲区 `i2cData`。在 `i2cCfg` 中,我们设置从机地址和要读取的寄存器地址,并将 `tx_data` 设置为寄存器地址,以便将其发送到从机。然后,我们将 `rx_data` 设置为 `i2cData`,以便将从机返回的两个字节存储在缓冲区中。最后,我们调用 `I2C_MasterTransferData` 初始化主机传输。 注意如何设置两个字节的 ACK。在第一个字节接收后,主机需要发送 ACK 以接收下一个字节。在第二个字节接收后,主机不需要发送 ACK 并停止传输。在 `i2cData` 中,我们将第一个字节设置为 0x00,以使主机在接收后发送 ACK。我们将第二个字节设置为 0x00,以使主机在接收后停止传输。 最后,我们关闭 LPC824 I2C 并返回 0。确保您的硬件电路和从机设备正确连接并启动。如果一切正常,`i2cData` 会包含从机返回的两个字节。 |
|
|
|
只有小组成员才能发言,加入小组>>
1905个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36352 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4391 浏览 0 评论
6043 浏览 1 评论
6759 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4207 浏览 0 评论
616浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
612浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
602浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
692浏览 2评论
790浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-18 22:13 , Processed in 0.992309 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号