stm8是电子工程师常用的主流控制芯片,IIC是常用的一种串口协议,但是搞过51的人都知道要进行IIC通讯,必须要进行管脚模拟IIC。虽然很多工程师知道stm8有硬件IIC,但是很多工程师还是习惯模拟,一方面习惯使然,一方面stm8的硬件IIC确实有点别扭,网上查了查,竟然没有stm8硬件IIC的资料。
由于本人在做扬尘监测和自动气象站的项目中需要使用OLED显示器,该显示器为IIC接口,刚开始我也是用模拟,但是想着既然stm8公司做了硬件IIC,那么他就一定有他的长处,于是硬是在没有任何资料的情况下,拿下来stm8的硬件IIC。下面简单介绍一下。
首先要进行IIC的硬件初始化:
//硬件iic初始化
I2C_Init(400000, 0x00, I2C_DUTYCYCLE_2, I2C_ACK_NEXT, I2C_ADDMODE_7BIT, 16);
然后是OLED的写函数:
void OLED_Write(u8 CD,u8 dd)
{
I2C_GenerateSTART(ENABLE);
while(!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT));
I2C_Send7bitAddress(OLED_ADDRESS, I2C_DIRECTION_TX);
while(!I2C_CheckEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
I2C_SendData(CD);//命令字或者数据字,指明后面发送的是命令还是数据
while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED));
I2C_SendData(dd);//命令或者数据
while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED));
I2C_GenerateSTOP(ENABLE);
}
剩下的就简单了,在这里只是抛砖引玉,就不粘上全部程序了,太多,有需要的可以和我联系。
大家看看其实硬件IIC要远远比模拟的简单,就看你想不想弄了。
现在程序运行非常稳定可靠,在产品中已经使用3年,还没有出过任何差错,这点我是很满意的,看来毕竟是硬件,怎么都比软件可靠高效吧。
上一篇:STM8S105S4_PKT学习笔记(1) LED灯
下一篇:STM8L051F3 硬件I2C从机实例
推荐阅读最新更新时间:2024-11-17 11:34
设计资源 培训 开发板 精华推荐
- 使用 NXP Semiconductors 的 TL431AC 的参考设计
- ETHWIZCLICK,基于 W5500 以太网控制器的评估套件
- 使用 Analog Devices 的 AD9559BCPZ 的参考设计
- RT9073、1-Micro A IQ、250mA 低压降线性稳压器无检测功能的典型应用
- LT6656BCS6-5 的典型应用,用于基本连接的 5V 电压基准
- pyAI-V831拓展板
- 使用 Richtek Technology Corporation 的 RT8485GS 的参考设计
- MC33072DR2G 交流耦合同相放大器典型应用
- LT6654AMPS6-1.25 扩展电源范围电压基准的典型应用
- 【航顺训练营】航顺开发板