大家好!
我打算在一个不同的.c文件上共享两个函数之间的数据。在PSoC Creator上的所有示例中,它们都使用声明为“Extn”的变量,因此它可以在不同的.c文件上共享可能的DATABETEWEN函数。
我试图用指针作为函数参数,但好像我做错了什么。这里是我的代码的一部分:
C文件:UIT88ReByTeDATA;
UIT8 8MPU9250ALE请求(空){
I2CdMaseRead字节(MPU9250x地址,WrDATA,Read ByTeDATA);UARTURUUARTPATSHIPE(“数据是:0X”);SAMPIFF(UARTBUFRESARCII,“%X”,*ReReByTeDATA);/ /将HEX转换为ASCII UARTHARUARTPASTROST(UARTBuffRasCII);UARTHARUARTPARSTROM(“\N\R”);
}
I2CMAST.C文件:UIT8 8I2CMASTEMADRADIONTELL(UIT32地址,U
ti8*子地址,UTIN 8*数据){
I2CJI2CMASTRADEBUF(地址,数据,1,I2CYI2CYMODEA完成EXEXEXXFER);
}
问题是上面的代码不起作用,但是如果我声明了Puth9250AivivRebug()函数的8*Read ByDATAN,所有的工作都很好,但是这个变量在传感器的所有变量上都是不可见的。为什么我声明函数内的变量工作?正如我所知道的指针用法,上面的代码应该工作如果我这样做:
C文件:UIT88ReByTeDATA;
UIT88MPU9250ALE请求(空){
I2CdMaseRead字节(MPU9250x地址,WrDATA,and RealByTeDATA);UARTHARUARTPATTROPE(“数据是:0X”);SAMPIFF(UARTBUFRESARCII,“%X”,*ReReByTeDATA);/ /将HEX转换为ASCII UARTHARUARTPASTROST(UARTBuffRasCII);UARTHARUARTPARSTROM(“\N\R”);
}
I2CMAST.C文件:UIT88I2CMASTORADRADIONTELL(UIT32地址,UTI8*子地址,UTIN 8*数据){
I2CJI2CMASTRADEBUF(地址,数据,1,I2CYI2CYMODEA完成EXEXEXXFER);
}
但结果是,这是行不通的。在另一个使用差异的项目中,它的效果不错,但我不知道为什么不在这里。
好像PSoC creator对指针不太好,有人能帮我吗?
非常感谢你!
约书亚
附件是我所说的完整文件代码
I2CMASTER和传感器代码
2.6 K
0