北京赛车pk10开奖

STM8S学习01——SPI&IIC

2019-09-16来源: eefocus关键字:STM8S  SPI  IIC

1、温习IIC总线协议

1)I2C 总线的一些特征

1> 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL

2> 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机关系软件设定地址 主机可以作为主机发送器或主机接收器

3> 它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁,防止数据被破坏

4> 串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速模式下可达 3.4Mbit/s

5> 片上的滤波器可以滤去总线数据线上的毛刺波 保证数据完整

北京赛车pk10开奖6> 连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制



2)起始和停止条件

1> 在 I2C 总线中 唯一出现的是被定义为起始 S 和停止 P 条件,其中一种情况是在 SCL 线是高电平时 SDA 线从高电平向低电平切换; 

2> 这个情况表示起始条件,当 SCL 是高电平时 SDA 线由低电平向高电平切换表示停止条件;

3> 起始和停止条件一般由主机产生 总线在起始条件后被认为处于忙的状态 在停止条件的某段时间后总线被认为再次处于空闲状态;

4> 如果产生重复起始 Sr 条件而不产生停止条件,总线会一直处于忙的状态,此时的起始条件 S 和重复起始 Sr 条件在功能上是一样的;

5> 如果连接到总线的器件合并了必要的接口硬件,那么用它们检测起始和停止条件十分简便,但是没有这种接口的微控制器在每个时钟周期至少要采样 SDA 线两次来判别有没有发生电平切换

  

2、SPI协议学习

1)SPI总线介绍

北京赛车pk10开奖1> SPI接口是Motorola首先提出的全双工三线同步串行外围接口,采用主从模式架构,支持多设备应用,一般只支持单主设备;

2> 时钟由主设备控制,数据在时钟脉冲下按位传输,高位在前;

3> 目前应用中的数据速率可达几Mbps

2)SPI总线

1> SPI在一般应用中有4根信号线:MOSI、MISO、SCK、SS;

MOSI:主器件数据输出,从器件数据输入

MISO:主器件数据输入,从器件数据输出

SCK:时钟信号,由主设备控制发出

/SS:从设备选择信号,由主设备控制<根据此信号可以决定连接到总线上从设备的数量>


2> 传输模式:

北京赛车pk10开奖A、根据时钟极性(CPOL)以及相位(CPHA)不同可以组合成 4 种工作模式:SPI0、SPI1、SPI2、SPI3;

(1)SPI0:CPOL=0,CPHA=0

北京赛车pk10开奖(2)SPI1:CPOL=0,CPHA=1

(3)SPI2:CPOL=1,CPHA=0

北京赛车pk10开奖(4)SPI3:CPOL=1,CPHA=1

B、时钟极性(CPOL)定义了时钟空闲状态电平,对传输协议没有重大影响;

(1)CPOL=0:时钟空闲状态为低电平;

(2)CPOL=1:时钟空闲状态为高电平。

C、时钟相位(CPHA)定义数据的采样时间;

(1)CPHA=0:在时钟的第一个跳变沿(上升沿或下降沿)进行数据采样;

(2)CPHA=1:在时钟的第二个跳变沿(上升沿或下降沿)进行数据采样;

3> 优缺点

A、优点:

(1)接口简单,利于硬件设计与实现;

(2)时钟速度快,且没有系统开销;

北京赛车pk10开奖(3)相对抗干扰能力强,传输稳定

B、缺点:

(1)缺乏流控制机制,无论主器件还是从器件均不对消息进行确认,主器件无法知道从器件是否繁忙,因此,需要软件弥补,增加了软件开发工作量;

(2)没有多主器件协议,必须采用很复杂的软件和外部逻辑来实现多主器件架构



关键字:STM8S  SPI  IIC 编辑:什么鱼 引用地址:http://news.2689mr.com/mcu/ic474612.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8S学习02——ADC
下一篇:STM8S 带缓冲区 串口中断 使用心得

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm8s003k3加数码管做的定时小板,继电器以及MOS管输出
最近刚做的用stm8s003k3加三位数码管做的定时小板,继电器以及MOS管输出,四个按键进行设置,代码可以根据自己需求更改单片机:stm8s003k3输入:四路按键输出:继电器、MOS管电路原理图如下: 单片机源程序如下:#include "main.h"#include "display.h"SysTime_t PollTestTime;void main(void){  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);  disableInterrupts();  &nbs
发表于 2019-10-15
stm8s003k3加数码管做的定时小板,继电器以及MOS管输出
第38章 I2S—音频播放与录音输入—零死角玩转STM32-F429系列
本章参考资料:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》及《I2S BUS》。若对I2S通讯协议不了解,可先阅读《I2S BUS》文档的内容学习。关于音频编译码器WM8978,请参考其规格书《WM8978_v4.5》来了解。38.1 I2S简介Inter-IC Sount Bus(I2S)是飞利浦半导体公司(现为恩智浦半导体公司)针对数字音频设备之间的音频数据传输而制定的一种总线标准。在飞利浦公司的I2S标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。38.1.1 数字音频技术现实生活中的声音是通过一定介质传播
发表于 2019-09-19
第38章 I2S—音频播放与录音输入—零死角玩转STM32-F429系列
STM8S_003_TIM定时中断
的工程代码是基于前面软件工程“STM8S_Demo”增加TIM定时器修改而来。初学的朋友可以参看我前面对应的基础文章,那些文章讲的比较详细。工程以简单、易理解为主,方便更多初学者快速理解,工程的大部分配置都是使用默认配置,具体配置可参看我的文章:IAR for STM8系列教程(一)_新建软件工程详细过程。2.软件概要说明坚持简单、基础、方便初学者理解为原则,本文提供软件工程中的源代码只添加了最简单的内容:系统初始化:System_Initializesv BSP_Initializes:时钟初始化CLK_Configuration和GPIO_Configuration初始化;v TIMER_Initializes:定时器初始化,本文重点
发表于 2019-09-18
STM8S_003_TIM定时中断
STM8S UART串口使用中断收发数据
原来调过STM8L的串口,逻辑简单,中断清晰,换成STM8S105K4后,虽然也是用STD库,除去函数名、宏名等语言层面的差异以外,中断处理方面也有些不一样的地方,特此记之。和此篇【STM8L USART串口使用】结构相同,也是中断异步模式,但为调用方便起见,在调用层面改为同步。(STM8S105K的MCU下,RX为PD6,RX为PD5。)使用方面,感觉主要困扰就是中断名、使用场合和时机不明确、不清晰,这一点不如STM8L的定义清晰。举例而言,开关中断用UART2_IT_RXNE_OR,清中断则用UART2_IT_RXNE。不能开关时用UART2_IT_RXNE,也不能清中断时用UART2_IT_RXNE_OR,否则STD库中参
发表于 2019-09-17
北京赛车pk10开奖stm8s中UART的用法(四种UART中断)
。----------------------------------------------------------------------*/#include <STM8S207S8.h>#define LED_DDR  PB_DDR#define LED_PORT PB_ODR#define LED_CR1  PB_CR1#define LED_CR2  PB_CR2void Init_UART3(void){      UART3_CR1=0x00;      UART3_CR2=0x00;      UART3_CR3=0x00;      // 设置波特率,必须注意以下几点:&nbs
发表于 2019-09-17
stm8s中UART的用法(四种UART中断)
STM8S 带缓冲区 串口中断 使用心得
;rim"); //开总中断 return data;} /************************************************************ 函数名称:int getStr(char *Buf,int count)** 功能描述:从接收缓冲区获取一帧数据** 参数列表:*Buf  存储收到的数据 数组*   count 要获取的数据长度** 返回结果:返回获取到的数据长度***********************************************************/int getStr(char *Buf,int count){ int
发表于 2019-09-17
小广播
何立民专栏 单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 2689mr.com, Inc. All rights reserved
北京赛车 北京赛车pk10开奖 天下汇彩票开户平台注册 北京赛车 天音彩票注册 北京赛车pk10开奖 北京赛车pk10开奖 北京赛车pk10开奖 北京赛车pk10开奖 北京赛车pk10开奖