STM32_24C02读写程序(亲自编写测试可用)

上传人:xmg****18 文档编号:108372943 上传时间:2019-10-23 格式:DOC 页数:9 大小:58KB
返回 下载 相关 举报
STM32_24C02读写程序(亲自编写测试可用)_第1页
第1页 / 共9页
STM32_24C02读写程序(亲自编写测试可用)_第2页
第2页 / 共9页
STM32_24C02读写程序(亲自编写测试可用)_第3页
第3页 / 共9页
STM32_24C02读写程序(亲自编写测试可用)_第4页
第4页 / 共9页
STM32_24C02读写程序(亲自编写测试可用)_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《STM32_24C02读写程序(亲自编写测试可用)》由会员分享,可在线阅读,更多相关《STM32_24C02读写程序(亲自编写测试可用)(9页珍藏版)》请在金锄头文库上搜索。

1、. . . .本文档内容为在STM32条件下的24C02读写程序。全文共分四部分,第一部分24C02的C程序,第二部分为24C02的.h程序,第三部分为端口与时钟配置函数,第四部分为主函数。下面分别进行介绍。第一部分:24C02的.c函数*/#include stm32f10x.h#include system_config.h#include 24C02.hu8 savedata10=10,9,8,7,6,5,4,3,2,1;/* Function Name : AT24C02_SDA_IO_SET(uchar io_set)* Description : SDA方向控制* Input :

2、None* Output : None* Return : None*/void AT24C02_SDA_IO_SET(unsigned char io_set) GPIO_InitTypeDef GPIO_InitStructure; if(io_set) GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 ;/SDA 设置为输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &

3、GPIO_InitStructure); else GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 ;/SDA 设置为输入 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, &GPIO_InitStructure); /* Function Name : delay2* Description : 延时函数* Input : None* Output : None* Re

4、turn : None*/ void delay2(u8 x) u8 i; for(i=0;ix;i+); /* Function Name : delay2* Description : 延时函数* Input : None* Output : None* Return : None*/void delay_nop(void) uint8_t i=10;/延时1.5us while(i-);/* Function Name : 24C02_init()* Description : 初始化函数* Input : None* Output : None* Return : None*/void

5、 I2C_init(void) /SCL=1 SCL_H; delay_nop(); /SDA=1 SDA_H; delay_nop();/* Function Name : I2C_start()* Description : 开始信号* Input : None* Output : None* Return : None*/void I2C_start() SDA_H; delay_nop(); SCL_H; delay_nop(); SDA_L; delay_nop(); SCL_L; delay_nop();/* Function Name : I2C_stop()* Descript

6、ion : 开始信号* Input : None* Output : None* Return : None*/ void I2C_stop() SDA_L; delay_nop(); SCL_H; delay_nop(); SDA_H; delay_nop();/* Function Name : I2C_write_bit()* Description : 开始信号* Input : None* Output : None* Return : None*/ void I2C_write_bit(int j) int i,temp,temp1; temp=j; /AT24C02_SDA_IO

7、_SET(1);/发送数据 for(i=0;i8;i+) temp1=temp&0x80;/高位在前相与 temp=temp1; SCL_L;/时钟线设为低 delay_nop(); if(temp1=0x80)/发送数据到SDA线上 SDA_H; delay_nop(); else SDA_L; delay_nop(); SCL_H;/时钟线设为高,开始传输数据 delay_nop(); SCL_L;/一个字节发送完成 delay_nop(); SDA_H; delay_nop();/* Function Name : I2C_read_bit()* Description : 读取一个字节

8、数据* Input : None* Output : None* Return : None*/ u8 I2C_read_bit() u8 i,j,k=0; SCL_L; delay_nop(); SDA_H; delay_nop(); AT24C02_SDA_IO_SET(0);/SDA设置为输入 for(i=0;i8;i+) delay_nop(); SCL_H; delay_nop(); if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7)=1) j=1; else j=0; k=(k1)|j; SCL_L; delay_nop(); AT24C02_SDA_IO_SET(1);/SDA设置为输出 delay_nop(); return(k);/* Function Name : I2C_reply()* Description : 读取应答信号* Input : None* Output : None* Return : None*/ void I2C_reply() u16 i=0; AT24C02_S

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号