请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR2355 您好...
我有以下驱动程序文件。 我正在传递函数的指针...函数是从 main 调用的,指针没有赋值...在函数内部指针得到赋值...赋值的一部分来自在 main 中定义的类型。 如果我在分配之后放置一个断点、我可以看到指针采用大小值(在函数中计算) 但是、在此之前的地址分配不需要执行、但我可以在函数中看到 applicationI2C.pSysCommsB 指向正确的存储器位置0x0540...有人能告诉我如何获得该分配。 我不想在函数中创建指向已在顶层(main)创建的现有数据段的新实例。
谢谢
pVal->pSysComms_Handle->pSysCommsB = applicationI2C.pSysCommsB;
uint8_t InitializeDisplay(I2C_txHandle_t *pVal) { /* * turn on display, turn * on cursor, position * cursor line 1 , position 1 */ uint8_t InitializeLCD[] = {0x3C, 0x0E, 0x01}; extern uint8_t *pI2CStream; extern SysComms_Handle_t applicationI2C; uint8_t err = 0; uint8_t k = sizeof(InitializeLCD); pI2CStream = malloc(k * 2); for (uint8_t t = 0; t < k; t++) { if (k - t > 1) *(pI2CStream + (2 * t)) = 0x80; else *(pI2CStream + (2 * t)) = 0x00; *(pI2CStream + (2 * t + 1)) = InitializeLCD[t]; } pVal->pSysComms_Handle->pSysCommsB = applicationI2C.pSysCommsB; pVal->size = k*2; if (!(ERR_INIT_LCD == config_I2CSendData(pVal))) err = 0; //pInit.pSysCommsB->UCBxCTLW[0] |= UCTR | UCTXSTT; else err = 1; return err; }