辉芒微单片机的Deom例程写的太垃圾了,只会写一种情况,比如他们硬件IIC,只写单次发送,单次读,连续发送或者连续读的例程就懒得写了,有点像应付了事。单片机老手估计都可以搞定,新手估计很难搞定。我今天花时间重新整理了一下IIC的驱动程序,模仿了STM32的HAL的命名,使用的话直接调用就好了。(注意丛机地址是独立的,没有包括读写位,真7位地址,单片机的IIC脚要设置为输出,因为硬件IIC脚是开漏输出模式)
uint8_t Data[2]={0};
Data[0] = 0x38;
Data[1] = 0x55;
HAL_I2C_Mem_Write(I2C1, 0x50, 0x01, I2C_MEMADD_SIZE_8BIT, (uint8_t *)&Data[0], 2, 10);
__delay_ms(10);
HAL_I2C_Mem_Read(I2C1, 0x50, 0x01, I2C_MEMADD_SIZE_8BIT, (uint8_t *)&Data[0], 2, 10)
HAL_I2C_Mem_Write的第一个参数是IIC选择,第二个参数是丛机地址,第三个参数是丛机内存地址,第四个参数是丛机内存地址是8位还是16位,第五个参数是数据,第六个参数是数据大小,第七个参数是等待时间,防止程序卡死。
例程是往24C02的0x01地址里面连续写入2个数据0x38和0x55,逻辑分析仪采集到的波形如下图:
接着连续读出0x01起始地址的2个数据
驱动成功了!
下面是程序文件(编译版本为FMDIDE_V3.1.0,适用FT61F08X,FT62F08X,FT61F0AX,FT64F0AX,_FT67F0AX ):
FT6_1_4_7_F0AX.7z
(275.73 KB, 下载次数: 21)
|