完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我使用 i2c_transfere_mpc5748g 示例文件,连接 pe11 和 pe10,在不做任何更改的情况下运行代码,在我的逻辑分析仪上给出以下信号:
我试图通过将 masterTxbuffer 等同于另一个数组来更改要发送的值: uint8_t 数组 [] = {1,3,3,5,7,3,21,9,7,5,3,2,8,5,3,1}; for (i = 0u; i < TRANSFER_SIZE; i++) { masterTxBuffer = array; } 并用相同的剩余代码发送它,但问题是我在分析仪上得到了相同的信号。 代码: /** 版权所有 (c) 2013 - 2015,Freescale Semiconductor, Inc. * 版权所有 2016-2017 NXP * 保留所有权利。 * * 本软件由恩智浦“按原样”提供,不提供任何明示或 *暗示的保证,包括但不限于 针对特定用途的适销性和适用性的暗示保证*。 *在任何情况下,恩智浦或其贡献者均不对任何直接、 *间接、偶然、特殊、惩戒性或后果性损害 *(包括但不限于替代商品或 *服务的采购;使用损失、数据、或利润;或业务中断) * 无论是根据任何责任理论引起的,无论是在合同中, *以任何方式因使用本软件而引起的* 严格责任或侵权行为(包括疏忽或其他) ,即使已被告知 * 存在此类损害的可能性。 */ /* 包括编译此模块/程序所需的模块 */ #include "Cpu.h" #include "pin_mux.h" #include "i2c1.h" #include "dmaController1.h" #include "clockMan1.h" #include /* 用户包含(此行下面的#include 不是由 Processor Expert 维护的)*/ #include #include #include #include <标准布尔.h> /* slaveTxBuffer 的初始化 */ uint8_t slaveTxBuffer[TRANSFER_SIZE] = {0x0, 0x1, 0x02, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf}; uint8_t slaveRxBuffer[TRANSFER_SIZE] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; i2c_master_state_t i2c1MasterState; i2c_slave_state_t i2c2SlaveState; /*! * @brief I2C Slave Callback * * @Param [in] instance I2C 实例编号 * @Param [in] slaveEvent 在 I2C 总线上接收到的事件 * @Param [in] userData 传递给回调的用户定义数据 * @return None * * @details 此函数将由 I2C 中断处理程序调用,它 * 将为 TX 或 RX 事件分配缓冲区。 * 如果发生错误事件,它将中止当前传输。 */ void i2c2_SlaveCallback0(i2c_slave_event_t slaveEvent, void *userData) { /* 从 userData 获取实例编号 */ uint32_t instance; 实例=(uint32_t)用户数据;/ * 检查事件类型: * - 根据主机请求类型设置 RX 或 TX 缓冲区* / 如果(slaveEvent == I2C_SLAVE_EVENT_TX_REQ) I2C_DRV_SlaveSetTxBuffer((uint8_t)实例,slaveTxBuffer,TRANSFER_SIZE); } 易失性 int exit_code = 0; /*! rief 项目的主要功能。 details 启动初始化序列如下: * - 启动 asm 例程 * - main() */ int main(void) { /* I2C 传输缓冲区声明 */ uint8_t masterTxBuffer[TRANSFER_SIZE] ; uint8_t 数组 [] = {1,3,3,5,7,3,21,9,7,5,3,2,8,5,3,1}; /* 用于初始化缓冲区的变量 */ uint8_t cnt; volatile bool isTransferOk = true; /* 用于初始化数据缓冲区的循环的变量 */ uint16_t i; uint16_tj; /* 将 I2C 实例编号用作从属模块的回调参数 */ i2c2_SlaveConfig0.callbackParam = (uint32_t *)INST_I2C2; /* 初始化和配置时钟 * - 配置系统时钟和分频器 * - 配置 LPI2C 时钟门控 * - 有关详细信息,请参阅时钟管理器组件 * / CLOCK_SYS_UpdateConfiguration(0U,CLOCK_MANAGER_POLICY_FORCIBLE);/* 初始化引脚* - 配置 I2C 引脚* - 有关详细信息,请参阅 PinSettings 组件*/ PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr); /* 初始化 I2C 主机配置 * 有关配置详细信息,请参阅 I2C 组件 */ I2C_DRV_MasterInit(INST_I2C1, &i2c1_MasterConfig0, &i2c1MasterState); /* 初始化 I2C 主机配置 * 有关配置详细信息,请参阅 I2C 组件 */ /* 初始化数据缓冲区 */ for (i = 0u; i < TRANSFER_SIZE; i++) { masterTxBuffer = array; } /* 发送一包数据给总线slave */ (无效)I2C_DRV_MasterSendDataBlocking(INST_I2C1,masterTxBuffer,TRANSFER_SIZE,真,OSIF_WAIT_FOREVER); /* 检查传输是否完成且没有错误 */ for (cnt = 0U; cnt < TRANSFER_SIZE; cnt++) { /* 如果值不相等,则中断循环并将 isTransferOk 设置为 false */ if((masterTxBuffer[cnt] != slaveRxBuffer[cnt])) { isTransferOk =错误的; 休息; } }/* 如果值不相等,则中断循环并将 isTransferOk 设置为 false */ /* Cast isTransferOk 以避免“设置但未使用”警告 */ (void)isTransferOk; /* 驱动程序示例结束 */ /*** Processor Expert 内部初始化。不要删除此代码!!!***/ #ifdef PEX_RTOS_INIT PEX_RTOS_INIT(); /* 所选 RTOS 的初始化。宏由 RTOS 组件定义。*/ #endif /*** Processor Expert 内部初始化结束。***/ /* 在这里写你的代码 */ /* 例如:for(;;) { } */ /*** 不要在这行写任何代码,否则它会在代码生成时被删除。***/ /*** RTOS 启动代码。宏 PEX_RTOS_START 由 RTOS 组件定义。不要修改此代码!!!***/ #ifdef PEX_RTOS_START PEX_RTOS_START(); /* 启动选定的 RTOS。宏由 RTOS 组件定义。*/ #endif /*** RTOS 启动代码结束。***/ /*** Processor Expert 主例程结束。不要修改此代码!!!***/ for(;;) { if(exit_code != 0) { 中断; } } 返回退出代码; /*** Processor Expert 主例程结束。不要在下面写代码!!!***/ } /*** 主程序结束。不要修改此文本!!!***/ /* 结束主要内容 */ /*! ** @} */ /* ** ######################################## ########################### ** ** 此文件由 Processor Expert 10.1 [05.21] 创建 ** 用于 NXP C55 系列微控制器。 ** ** ############################################## ##################### */ |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
1905个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36352 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4391 浏览 0 评论
6043 浏览 1 评论
6759 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4207 浏览 0 评论
617浏览 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评论
791浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 12:36 , Processed in 1.184687 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号