亲爱的英飞凌工程师,我正在使用 CYT2B7 微控制器,我想用这个微控制器驱动用于驱动七段管的 ch455g 模块。
我使用了:D:traveo2TVII_Sample_Driver_Library_6.4.0tviibe1msrc 文件夹下的演示程序,并复制了 iic 演示主程序
从 D:traveo2TVII_Sample_Driver_Library_6.4.0tviibe1msrcexamplesscbi2cmaster
我运行了演示程序,因为我使用了与演示程序相同的引脚配置。
我认为硬件没问题,我做了以下改动:
我只想向 ch455g 发送 2 个字节:例如,当我向它发送 0x48 0x01 时,它将启用七段管、
然后我发送 0x68 0xff,
电子管中就会显示数字 0。
ch455g 从站地址是 0x24,我已经设置好了。 但当我检查波形时
例如
int main(void)
{
SystemInit();
__enable_irq(); /* 启用全局中断。 */
/* 初始化端口和时钟 */
Peripheral_Ini
tialization(外设初始化);
/* Initilize Enable I2C */
Cy_SCB_I2C_DeInit(USER_I2C_SCB_TYPE);
Cy_SCB_I2C_Init(USER_I2C_SCB_TYPE, g_stc_i2c_config, g_stc_i2c_context);
Cy_SCB_I2C_SetDataRate(USER_I2C_SCB_TYPE, E_I2C_FREQUENCY, E_I2C_SCBCLK);
Cy_SCB_I2C_RegisterEventCallback(USER_I2C_SCB_TYPE, (scb_i2c_handle_events_t)Scb_I2C_Master_Event, g_stc_i2c_context);
Cy_SCB_I2C_Enable(USER_I2C_SCB_TYPE);
/* 启用中断 */
NVIC_EnableIRQ(CPUIntIdx1_IRQn);
/* I2C 主站模式测试 */
//Scb_I2C_Master_LowLevelAPI_Test();
Scb_I2C_Master_HighLevelAPI_Test(0x41, 0x42);
for(;;)
{
Scb_I2C_Master_HighLevelAPI_Test(0x41, 0x42);
Cy_SysTick_DelayInUs(50000);
//Scb_I2C_Master_HighLevelAPI_Test(0x68, 0xff);
}
波形似乎有 3 个字节 0x48 0x41('A)0x42('B)
但当我改为 Scb_I2C_Master_HighLevelAPI_Test(0x68, 0xff); 时,却没有波形,这让我有点困惑。
为什么我将发送的字节改为 (0x48, 0x01) 或 (0x68, 0xff),却没有任何波形? 为什么?
或者,如果我想使用 gpio 来模拟 iic 而不使用 demo api。 如何在需要时将 sda 引脚设置为输入或输出,我没有找到有关如何设置 gpio 引脚方向的信息。