版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.10.3STM32的I2C固件函数库项目一11一月2026智能电子产品设计与制作主要内容STM32的I2C的函数库3.STM32的I2C固件函数库1.函数I2C_Init函数原型:voidI2C_Init(I2C_TypeDef*I2Cx,I2C_InitTypeDef*I2C_InitStruct)函数功能:根据I2C_InitTypeDef中指定的参数初始化外设I2Cx寄存器。I2C_InitStruct指向I2C_InitTypeDef的指针,I2C_InitTypeDef结构体定义于stm32f0xx_spi.h文件中。其结构体如下:typedefstruct{uint32_tI2C_Timing;//I2C时钟寄存器uint32_tI2C_AnalogFilter;//模拟噪声滤波器uint32_tI2C_DigitalFilter;//数字噪声滤波器uint32_tI2C_Mode;//I2C的模式uint32_tI2C_OwnAddress1;//设备自身地址uint32_tI2C_Ack;//应答信号uint32_tI2C_AcknowledgedAddress;//7位或10位应答地址}I2C_InitTypeDef;3.STM32的I2C固件函数库1.函数I2C_Init实例:I2C_InitStruct.I2C_Timing=0x00201D2B;//设置I2C时间寄存器的值I2C_InitStruct.I2C_AnalogFilter=I2C_AnalogFilter_Enable;//I2C模拟滤波使能I2C_InitStruct.I2C_DigitalFilter=0x00;//数字滤波器I2C_InitStruct.I2C_Mode=I2C_Mode_I2C;//工作模式为I2C模式I2C_InitStruct.I2C_OwnAddress1=0x00;//设置I2C自身器件地址I2C_InitStruct.I2C_Ack=I2C_Ack_Enable;//I2C2应答使能//7位应答地址I2C_InitStruct.I2C_AcknowledgedAddress=I2C_AcknowledgedAddress_7bit;I2C_Init(I2C1,&I2C_InitStructure);3.STM32的I2C固件函数库1.函数I2C_InitI2C_Timing这个参数是I2C时间寄存器,用来设置I2C的时钟,需要使用ST官方工具I2C_Timing_Configuration进行计算,I2C时钟为100kHz时,其值为0x00201D2B,I2C时钟为400kHz时,其值为0x0010020A。以时钟100kHz为例,设置如图1-79所示。I2C_OwnAddress1这个参数是指STM32设备自身的地址,该地址设置的只要和I2C总线上其他设备地址不一致即可。3.STM32的I2C固件函数库2.函数I2C_Cmd函数原型:voidI2C_Cmd(I2C_TypeDef*I2Cx,FunctionalStateNewState)函数功能:使能I2Cx实例:I2C_Cmd(I2C1,ENABLE);//使能I2C13.STM32的I2C固件函数库3.函数I2C_GenerateSTART函数原型:voidI2C_GenerateSTART(I2C_TypeDef*I2Cx,FunctionalStateNewState)函数功能:产生起始信号实例:I2C_GenerateSTART(I2C1,ENABLE);//产生起始信号3.STM32的I2C固件函数库4.函数I2C_GenerateSTOP函数原型:voidI2C_GenerateSTOP(I2C_TypeDef*I2Cx,FunctionalStateNewState)函数功能:产生停止信号实例:I2C_GenerateSTOP(I2C1,ENABLE);//产生停止信号3.STM32的I2C固件函数库5.函数I2C_TransferHandling函数原型:voidI2C_TransferHandling(I2C_TypeDef*I2Cx,uint16_tAddress,uint8_tNumber_Bytes,uint32_tReloadEndMode,uint32_tStartStopMode)该函数中,各参数的含义如下:第1个参数I2Cx为I2C1或I2C2;第2个参数Address为从机设备地址;第3个参数Number_Bytes为要编程的字节数,取值范围0~255;3.STM32的I2C固件函数库5.函数I2C_TransferHandling第4个参数ReloadEndMode为装载结束模式,该参数有三种取值,分别是I2C_Reload_Mode,I2C_AutoEnd_Mode,I2C_SoftEnd_Mode模式。I2C_Reload_Mode称为自动装载模式,在这种模式下传输完N个字节后,I2C的发送寄存器又会重新装载需要传输的数据,每传输完N个字节后TCR标志位会置位。I2C_AutoEnd_Mode称为自动结束模式,在这种模式下,I2C传输完N个字节后会自动产生停止信号,终止信号的传输。I2C_SoftEnd_Mode称为软件结束模式,在这种模式下,I2C传输完N个字节后,软件产生停止信号。3.STM32的I2C固件函数库5.函数I2C_TransferHandling第5个参数StartStopMode为起始信号和停止信号模式,该参数有四种取值,分别是I2C_No_StartStop,I2C_Generate_Stop,I2C_Generate_Start_Read,I2C_Generate_Start_Write模式。I2C_No_StartStop模式是不产生起始和停止信号,一般用于配置寄存器。I2C_Generate_Stop模式是产生停止信号。I2C_Generate_Start_Read模式是产生读起始信号。I2C_Generate_Start_Write模式是产生写起始信号。函数功能:在开始传输或传输期间处理I2C通信实例:I2C_TransferHandling(I2C1,SlaveAddress,0,I2C_AutoEnd_Mode,I2C_No_StartStop);3.STM32的I2C固件函数库6.函数I2C_SendData函数原型:voidI2C_SendData(I2C_TypeDef*I2Cx,uint8_tData)函数功能:发送一个字节实例:I2C_SendData(I2C1,0x23);//发送一个字节3.STM32
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国石化销售股份有限公司山东滨州邹平石油分公司招聘备考题库附答案详解
- 2026年合肥市人力资源服务有限公司派驻至合肥源创新人才发展有限公司外包人员招聘备考题库及1套参考答案详解
- 2026年广州医科大学附属口腔医院招聘备考题库(一)及答案详解1套
- 2026年山西省铁路工程学校招聘备考题库及参考答案详解1套
- 2026年企业年金、绩效奖金重庆中电自能科技有限公司招聘高级产品经理、研发工程师等社校招岗位备考题库参考答案详解
- 2026年中国轻工业长沙工程有限公司招聘备考题库及完整答案详解1套
- 2026年上海中医药大学附属曙光医院安徽医院劳务派遣窗口收费岗招聘备考题库(第二批)及答案详解一套
- 2025年德惠市大学生乡村医生专项计划公开招聘工作人员备考题库(1号)及一套答案详解
- 2026年中核粒子医疗科技有限公司招聘备考题库含答案详解
- 2026年宜宾国企招聘维操员大专可进六险二金备考题库及答案详解参考
- 2024年高中语文选择性必修上册古诗文情境式默写(含答案)
- 部编人教版4年级上册语文期末复习(单元复习+专项复习)教学课件
- 2024-2025学年云南省玉溪市八年级(上)期末英语试卷(含答案无听力原文及音频)
- 绿色建材生产合作协议
- 英语丨安徽省皖江名校联盟2025届高三12月联考英语试卷及答案
- 湖南省长沙市长2024年七年级上学期数学期末考试试卷【附答案】
- 凉山州 2024 年教师综合业务素质测试试卷初中物理
- 他汀不耐受的临床诊断与处理中国专家共识(2024)解读课件
- 钢管支撑强度及稳定性验算
- 《企业内部控制流程手册》
- DB 37T5061-2016 住宅小区供配电设施建设标准
评论
0/150
提交评论