过去、我使用 Arduino 微控制器通过 I2C 控制4DSystems 制作的触摸屏。
现在我想使用 TI 微控制器、特别是 TMS320F28069 ,通过 I2C 控制4DSystems 触摸屏。
在4DSystems 的 Github 帐户上、他们有用于控制触摸屏的通用 C 代码。 为了使用这个通用 C 代码、您自己必须实现以下函数:
uint16_t genieGetByteCount (空);
uint_least8_t genieGetByte (空);
uint_least8_t geniePeekByte (空);
空隙 geniePutByte (uint_least8_t);
似乎我们不能" PEEK '一个字节、因此我必须通过写入" 获取 "和" PEEK '功能如下:
bool has_peeked_byte = false;
uint_least8_t peeked_byte ='\0';
uint_least8_t genieGetByte (void)
{
if ( has_peeked_byte )
{
has_peeked_byte = false;
返回 peeked_byte;
}
//在此处输入代码以从 I2C 读取
}
uint_least8_t geniePeekByte (void)
{
如果( has_peeked_byte )返回 peeked_byte;
//如果控制权到达此处,则'has_peeked_byte"为 false,
//调用 genieGetByte 时这很重要
peeked_byte = genieGetByte ();
has_peeked_byte = true;
返回 peeked_byte;
}
但现在我想知道我将如何实施" GetByteCount '函数。 来查看的数据表 TMS320F28069 的时钟、 我看到它具有很少的 I2C 寄存器、其中一个是 I2CCNT 。 我看到过一些代码示例、其中该寄存器是在发送数据之前设置的(即、它用于指示要发送多少字节)。 但它还可以用于确定有多少字节可供读取?