你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 8556|回复: 5

STM8L152 IO口模拟IIC程序

[复制链接]

2

主题

13

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-9-27 20:20:05 | 显示全部楼层 |阅读模式
//IIC.h
#ifndef IIC_H
 #define IIC_H
 /********************************************************/
 /* Include File                    */
 /********************************************************/
 #include "stm8l15x.h"
 /********************************************************/
 /* Macro Define                   */
 /********************************************************/
 /********************************************************/
 /* Extern reference variable         */
 /********************************************************/
 /********************************************************/
 /* Extern reference Function Prototype      */
 /********************************************************/
 extern  void I2Cstart(void);
 extern void I2CStop(void);
 extern unsigned char I2cWriteByte(unsigned char fx_data);
 extern unsigned char I2cReadByte(unsigned char end_k);
 extern void IICDelay(void);
#endif
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////copy follow text and save as IIC.c file////////////
//IIC.c

/********************************************************/
/* Include File                    */
/********************************************************/
#include "IIC.h"
/********************************************************/
/* Macro Define                   */
/********************************************************/
/********************************************************/
/*     Prototype of function          */
/********************************************************/
void IICDelay(void);
/********************************************************/
/* RAM Define                    */
/********************************************************/
/********************************************************/
/* Function Define                */
/********************************************************/
/*******************************************************/
void I2Cstart(void)
{
 GPIO_Init(GPIOG,GPIO_Pin_5,GPIO_Mode_Out_PP_High_Slow);//set SCL pin as output high
 GPIO_Init(GPIOG,GPIO_Pin_4,GPIO_Mode_Out_PP_High_Slow);//set SDA pin as output high
 IICDelay();
 GPIO_Init(GPIOG,GPIO_Pin_4,GPIO_Mode_Out_PP_Low_Slow);//set SDA pin as output low
}
//-------------------------------------------------------------------------
unsigned char I2cWriteByte(unsigned char ByteData)
{
 unsigned char BitCount;
 unsigned char Data;
 Data=ByteData;
 GPIO_Init(GPIOG,GPIO_Pin_4,GPIO_Mode_Out_PP_Low_Slow);//set SDA pin as output low
 for (BitCount = 0; BitCount < 8; BitCount++)
 {
  GPIO_Init(GPIOG,GPIO_Pin_5,GPIO_Mode_Out_PP_Low_Slow);//set SCL pin as output low
  IICDelay();
  if (0x80 &Data)
  {
   GPIO_Init(GPIOG,GPIO_Pin_4,GPIO_Mode_Out_PP_High_Slow);//set SDA pin as output high
  }
  else
  {
   GPIO_Init(GPIOG,GPIO_Pin_4,GPIO_Mode_Out_PP_Low_Slow);//set SDA pin as output low
  }
  IICDelay();                           
  GPIO_Init(GPIOG,GPIO_Pin_5,GPIO_Mode_Out_PP_High_Slow);//set SCL pin as output high
  Data
<
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2011-9-27 20:41:49 | 显示全部楼层

RE:STM8L152 IO口模拟IIC程序

谢谢分享。
回复 支持 反对

使用道具 举报

1

主题

14

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-4-13 11:36:56 | 显示全部楼层

RE:STM8L152 IO口模拟IIC程序

你做过IIC 从机中断接收数据的实验吗
回复 支持 反对

使用道具 举报

0

主题

36

回帖

0

蝴蝶豆

初级会员

最后登录
2020-7-27
发表于 2012-8-30 18:07:32 | 显示全部楼层

RE:STM8L152 IO口模拟IIC程序

好东西
回复 支持 反对

使用道具 举报

0

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-12-11 19:31:41 | 显示全部楼层
怎么代码不全呢?
还有如何实现一次发送多个字节数据?
回复 支持 反对

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
2020-6-22
发表于 2015-6-29 16:48:04 | 显示全部楼层
代码不全啊
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版