历史上的今天

今天是:2024年11月25日(星期一)

2019年11月25日 | stm8硬件IIC的初始化和简单使用

发布者:和谐共处 来源: eefocus关键字:stm8  硬件IIC  初始化 手机看文章 扫描二维码
随时随地手机看文章

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年,还没有出过任何差错,这点我是很满意的,看来毕竟是硬件,怎么都比软件可靠高效吧。

关键字:stm8  硬件IIC  初始化 引用地址:stm8硬件IIC的初始化和简单使用

上一篇:STM8S105S4_PKT学习笔记(1) LED灯
下一篇:STM8L051F3 硬件I2C从机实例

推荐阅读

机器人系统以功能及系统实现为载体,通过自主或半自主的感知、移动、操作或人机交互,体现类似于人或是生物的智能水平;它能够扩展人在尺度、时间、空间、环境、情感、智能以及精度、速度、动力等方面所受到的约束和限制,并为人服务。 中国作为世界最大的机器人消费国,除了工业机器人连续 5 年成为世界最大的市场外,服务机器人的需求也增长显著。...
英特尔实践AI媒体分享会今天举行,首次面向中国媒体介绍了最新推出的英特尔® Nervana™ 神经网络处理器(NNP)和下一代英特尔® Movidius™ Myriad™ 视觉处理单元(VPU),并发布了《英特尔中国金融行业AI实战手册》和《英特尔中国医疗健康行业AI实战手册》。同时,本次活动作为英特尔人工智能年度分享,系统介绍了近一年来英特尔在人工智能领域的重要进...
投资银行 Cowen 追踪到了市场对 iPhone 12 系列的更强劲需求,并预测苹果可能会有一个惊人的假期季度-生产近 8000 万部 iPhone。基于对 iPhone 12 和 iPhone 12 Pro 的强劲初始需求,分析师 Krish Sankar 将他在 12 月季度的 iPhone 生产预期从上个月的 7600 万部提高至 7900 万部。分析师补充说,12 月季度的 iPhone 出货量...
中国储能网讯:在碳达峰、碳中和目标的大形势下,电力系统在新能源电力加速发展中呈现出新的运行特征。新挑战之下,电力需求侧资源的重要性得到行业各方的更充分认识,电力需求侧管理变革被摆上更为重要的位置。 工业是我国能源消耗最高的产业,用电量占比达三分之二,是电力最大的需求侧。加强工业领域电力需求侧管理、优化工业用电结构、转变工业用电...

史海拾趣

问答坊 | AI 解惑

长虹总线进入方法

长虹总线进入方法…

查看全部问答∨

ch375读写u盘C51示例源程序

ch375读写u盘C51示例源程序,大家看看吧!…

查看全部问答∨

【视频下载】十天学会PIC单片机

十天学会PIC单片机 共有13讲,目录如下 前言: 时间:15分。 内容:MPLAB、PICC软件的安装与配置设置、USB下载驱动安装。 Lesson1: 时间:1小时44分。 内容:PIC单片机简介、软件使用方法、新建工程、软件调试、流水灯程序实现。 Lesson2: ...…

查看全部问答∨

华中理工大学C51单片机教材(经典)--初学者必看

华中理工大学C51单片机教材(经典)--初学者必看…

查看全部问答∨

ARM仿真器

请问ARM仿真机是有什么用的呢?? 他的价格比较高,有必要买吗???…

查看全部问答∨

嵌入式研发之家

嵌入式研发之家正式上线, 越来越多的嵌入式研发资料以及技术讨论群, 欢迎大家踊跃参与,更加欢迎建站建议,呵~ 网址:http://www.itxxh.cn …

查看全部问答∨

请教一个代码在单片机内运行的问题

现在有个项目要在单片机上开发个控制程序,以前没用过想了解一下。 我看一般的单片机片内ram只有4-8kB,那运行在单片机上的代码是在片内flash上读取运行的是吗?就是flash上读一条运行一条,而不象有些嵌入式系统要将代码全部拷贝到ram内再运行是 ...…

查看全部问答∨

U盘不能用了,急,急!

我刚买了一个KINGSTON的U盘后在一个同事的电脑上用FAT格式化后,取下,然后将其插在一台USB接口被屏蔽的机子上,机子检测结果是“硬件不可用",后直接将其取下,之后这个U盘在其它没有屏蔽的电脑上都不能用的(插上之后电脑检测不到)。那位高人知 ...…

查看全部问答∨

我的STM32到底跑多快?

我的 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 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved