stm8硬件IIC的初始化和简单使用

发布者:和谐共处最新更新时间:2019-11-25 来源: 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从机实例

推荐阅读最新更新时间:2024-11-17 11:34

SEW-movifit变频器的初始化
电机启动 电机启动必须在专家模式下进行。 要激活“专家模式”,必须将DIP开关S10 / 1切换到ON。这是默认设置。该信息也可在MoTIonStudio中获得. 开关位于EBOX的底部 电机数据在电机附带的铭牌上列出。 确保检查电机是星形连接还是三角形连接。 该屏幕仅显示数据 该AMX通过参数设置1 始终选择此设置 仅当ABOX具有以下标识时,AMX才能用于单电机运行: 当ABOX具有以下标识时,可以使用多电机操作: 所有SEW电机均设计为矢量控制运行,因此请确保选择此类型的运行 AMX仅可在“速度控制”操作模式下使用 您可以在此处打开电机列表。然后,您必须选择正确
[嵌入式]
SEW-movifit变频器的<font color='red'>初始化</font>
STM8单片机软件判断复位源
下面跟大家说一下STM32单片机的端口重映射,这里是以USART1的重映射为例. STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特别之处就是:很多复用内置的外设的I/O引脚可以通过重映射功能,从不同的I/O管脚引出,即复用功能的引脚是可通过程序改变的. 三个红框交汇处.STM32F103VCT6 这个CPU的USART1接的是PB6/PB7 但是上电初始化后默认功能并非是USART1.所以想要用串口功能 .必须用端口重映射.. 大家知道,STM32的单片机每个功能模块有自己
[单片机]
STM32双缓冲机制初始化(使用STM32CubeMX)
1.使用STM32CubeMX配置的串口引脚设置和dma的设置会生成在usart.c。 1)如果DMA接收想采用循环缓冲区的方式,可以直接将RX-DMA设置成Circle方式,然后数据就会硬件上自动实现环形缓冲区的功能,省了不少时间。 2)DMA在采用Normal模式的时候,当一次任务完成后,DMA- DMA_BufferSize自动清零,并且DMA自动停止。如果想再次设置DMA的BufferSize的话,必须要进行如下操作: step1:DMA_CMD(DMAx_Channely,DISABLE); step2: 设置DMA_BufferLen step3:DMA_CMD(DMAx_Channely
[单片机]
STVD+Cosmic搭建STM8开发环境
1、在官网下载STVD并安装 因为STVD只支持汇编语言,还需要安装Cosmic编译器来支持C语言 2、到官网下载Cosmic并安装 在官网上注册一下,获取1年的免费使用license 3、在STVD上配置Cosmic路径
[单片机]
STVD+Cosmic搭建<font color='red'>STM8</font>开发环境
IAR新建STM8工程
1、准备标准库函数文件,官方的标准库函数为stsw-stm8069,解压后如下图: 2、新建一个文件夹,本例子命名为stm8-project,新建四个子文件夹,分别命名为APP、Readme、USER、STM8S_StdPerph_Driver: 3、从库函数例程以下目录拷贝文件 inc和src两个文件夹以及内容至STM8S_StdPerph_Driver目录。 4、从库函数例程以下目录拷贝文件 main.c、stm8s_conf.h、stm8s_it.c 、stm8s_it.h到USER目录。 5、在Readme目录下新建一个文本文件,命名为readme.txt,这个主要用来记录开发进度: 6、打开IAR,新
[单片机]
IAR新建<font color='red'>STM8</font>工程
STM8 汇编学习笔记2: 开发环境
写在前面 就我所知,STM8的开发平台有两种:意法官方的STVD和IAR for STM8. STVD没尝试过。反正IAR用的感觉还凑合,各种该有的功能都有,但界面不怎么友好。估计是低版本的缘故,由于我长时间盯着屏幕眼睛酸痛,所以没办法只能把编辑界面底色改成黑色,可TM怎么行号编程白色的了?根本看不清。看不清就不看了呗,反正也没啥用。但是就是感觉超不爽。而且字体显示不知道怎么搞的,在缩放的时候就变得特别奇怪,跟手写的一样。 相关资料 如之前所述,官方的永远是最好的,没有谁比创造者更了解他的产品了。 环境设置 俗话说,站在巨人的肩膀上能看得更远。学习汇编也是一样,先看代码。但是由于汇编对于不同的芯片差异很大,网络上也很难找到
[单片机]
<font color='red'>STM8</font> 汇编学习笔记2: 开发环境
PIC单片机一路AD的初始化方法
void delay(unsigned int x) { unsigned int a,b; for(a=x;a 0;a--) for(b=30;b 0;b--); } void ad() //采集函数 { INTCON=0X00; TRISA=0XFF; ADCON1=0B00000000; ADCON0=0B10000001;//AN1,RA0 delay(1); ADGO=1; delay(1); i=ADRESH; //采集到的AD值 ADRESH=0x00; } void Vad() //求AD平均值函数 { ad(); delay(1); j1=i; ad(); delay(1); j2=i; ad(); delay
[单片机]
STM8 IAR相关笔记
如果.h文件不在程序根目录下,需要说明位置,如下图: 这样编译器就能找到.h文件的位置,不会出错。至于.c文件直接位置添加即可,如下图
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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