主题中讨论的其他器件: MSP432P401R
背景:
在我的 MSP432E401Y Launchpad 上、我使用 driverlib i2c 重复启动函 数来访问连接的 NHD-C0220BiZ-FS (RGB)-FBW-3VM 2行20字符 LCD 显示屏。
在 LCD 单元上显示字符之前、我经常需要为板加电几次。
我对 i2c 例程使用轮询(非中断模式)。 此 LCD 显示屏使用具有 i2c 接口的 ST7036i 控制器。
该显示可与 MSP432P401R Launchpad 和 driverlib 例程良好配合使用、从而实现重复启动。
几个月来,我一直在努力解决这一问题,但没有成功。 昨天、在回顾它时、我看到一篇文章、指出 MSP43E401Y 具有与 Tiva C TM4C129x 系列相同的内核。
Tiva C 具有 SPMZ850G (2017年3月修订)中 i2c (MSP432E401Y 勘误表未列出)的器件勘误表。
具体而言、建议编号 I2C_08 (I2C 主设备忙状态位不会立即置位)。
一个建议的权变措施(使用轮询时)是"在轮询 I2CMS 寄存器忙状态之前添加一个至少为 I2C 时钟周期60%的延迟环路"。
driverlib 函数:'bool I2CMasterBusy (uint32_t ui32Base)'不会实现这一点。
我修改了我的代码,在每次调用 I2MasterControl(.....)之间,我的毫秒延迟函数被调用,延迟为1ms。 和 I2MasterBusy (...) 到目前为止、我一直在为 LCD 模块供电。
现在回答我的问题:
- MSP432E401Y 的 I2C 器件勘误表是否与 TM4C129x 相同?
-是否有更新的 MSP432E401Y 器件勘误表文档、说明是否有更新的勘误表? 我遇到的最新问题是:SLAZ709 - Octber 2017
我的新 LCD 初始化代码的一部分示例 (延迟为1ms)
I2CMasterSlaveAddrSet (I2C2_base、LCD_SLAVE_ADDRESS、false);
I2CMasterDataPut (I2C2_base、0x00);//发送开始、地址和命令模式字节(0x00)
I2CMasterControl (I2C2_base、I2C_MASTER_CMD_BURST_SEND_START);//开始发送数据
my48Mdelayms (1); /1ms 延迟
while (I2CMasterBusy (I2C2_base));//等待传输完成
I2CMasterDataPut (I2C2_base、0x38);//函数集- 8位、2行显示5x8、安装表0
I2CMasterControl (I2C2_base、I2C_MASTER_CMD_BURST_SEND_CONT);//发送刚刚放入 FIFO 中的数据
my48Mdelayms (1); /1ms 延迟
while (I2CMasterBusy (I2C2_base));//等待传输完成