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从机实例
推荐阅读
史海拾趣
在电子行业中,市场竞争激烈、技术更新换代迅速。Data Translation在发展过程中也遇到了不少挑战和困难。但公司始终坚持以客户为中心、以技术创新为驱动的发展理念,积极应对市场变化和挑战。公司通过加大研发投入、优化产品结构、拓展市场渠道等方式不断提升自身的竞争力和适应能力。这些努力使公司在面对市场变化和挑战时能够保持稳健的发展态势。
Data Translation在追求企业发展的同时,也积极履行社会责任和推动可持续发展。公司关注环境保护和员工福利等方面的问题,通过采用环保材料、节能减排等措施降低生产过程中的环境污染和能源消耗;通过提高员工福利待遇、加强员工培训等方式提升员工的工作满意度和忠诚度。这些举措不仅为公司赢得了良好的社会声誉和形象,也为公司的长期发展奠定了坚实的基础。
请注意,以上故事仅为概述框架,并未详细展开每个故事的具体情节和细节。在实际编写时,你可以根据Data Translation Inc公司的具体发展历程和业务特点进行进一步的补充和完善。
随着全球对环境保护意识的提高,E-tec也积极响应这一趋势。他们投入资金进行环保设施的建设,采用环保材料和工艺进行生产。同时,E-tec还注重资源的循环利用和节能减排,通过一系列措施降低了生产过程中的能耗和排放。这些努力不仅为公司带来了良好的社会声誉,也促进了公司的可持续发展。
在电子行业快速发展的背景下,E-tec始终保持对技术创新的关注。他们投入大量资金进行研发,不断推出新产品和新技术。例如,他们成功开发了一种新型的微型连接器,该连接器具有体积小、传输速度快、抗干扰能力强等优点,受到了市场的热烈欢迎。此外,E-tec还注重产品升级和换代,确保产品始终保持在行业前列。
为了进一步扩大市场份额,义隆电子积极实施国际化战略。公司在台湾新竹科学园区设立了全球营运总部,并在亚、美等二大洲建立了密集的行销暨技术中心。通过不断拓展国际市场,义隆电子的产品已经销售到全球各地,赢得了广泛的客户认可和信赖。同时,公司还积极寻求与国际知名企业的合作机会,共同推动行业技术的发展和创新。
进入21世纪,随着LED技术的快速发展,ERG看到了固态照明市场的巨大潜力。2008年,公司决定成立一个新的部门——ERG Lighting,专注于为固态照明市场设计、制造和分销LED驱动器和其他照明配件。这一举措极大地拓展了公司的业务范围,并使其在市场上占据了有利地位。ERG Lighting的成立,不仅为公司带来了新的增长点,还进一步巩固了其在电源转换产品领域的领先地位。
十天学会PIC单片机 共有13讲,目录如下 前言: 时间:15分。 内容:MPLAB、PICC软件的安装与配置设置、USB下载驱动安装。 Lesson1: 时间:1小时44分。 内容:PIC单片机简介、软件使用方法、新建工程、软件调试、流水灯程序实现。 Lesson2: ...… 查看全部问答∨ |
|
现在有个项目要在单片机上开发个控制程序,以前没用过想了解一下。 我看一般的单片机片内ram只有4-8kB,那运行在单片机上的代码是在片内flash上读取运行的是吗?就是flash上读一条运行一条,而不象有些嵌入式系统要将代码全部拷贝到ram内再运行是 ...… 查看全部问答∨ |
我刚买了一个KINGSTON的U盘后在一个同事的电脑上用FAT格式化后,取下,然后将其插在一台USB接口被屏蔽的机子上,机子检测结果是“硬件不可用",后直接将其取下,之后这个U盘在其它没有屏蔽的电脑上都不能用的(插上之后电脑检测不到)。那位高人知 ...… 查看全部问答∨ |
我的 STM32 到底跑多快? 我在 STM32F103RB 的开发板上, 写如下代码: uint32_t x = 0x009CF260, y; while (1) { if (--x ==0) { x = 0x009CF260; y = 1; & ...… 查看全部问答∨ |
一执行FLASH->ACR|=(uint32_t)FLASH_ACR_LATENCY_2就HardFault了? 本想将程序在flash中调试,因为之前一直在内部sram运行。 跳线啊,一些ROM/RAM地址啊 其他设置都弄好后 开始调试啦。结果发现一执行到FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2就HardFault了 这句在system_stm32f10x.c文件的static vo ...… 查看全部问答∨ |