初级会员

- 积分
- 116
- 金钱
- 116
- 注册时间
- 2015-12-28
- 在线时间
- 29 小时
|
1金钱
我用原子个模拟的IIC程序能够读取我的芯片值,但是我换个IO口模拟就会出现读不出数据或者OXFF!这是什么情况?我只是换了端口
//#define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}
//#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}
//#define SCL_OUT() {GPIOB->CRH&=0XFFFFF0FF;GPIOB->CRH|=3<<8;}
#define SCL_OUT() {GPIOB->CRH&=0XFFF0FFFF;GPIOB->CRH|=3<<16;}
#define SDA_IN() {GPIOB->CRH&=0X0FFFFFFF;GPIOB->CRH|=8<<20;}
#define SDA_OUT() {GPIOB->CRH&=0X0FFFFFFF;GPIOB->CRH|=3<<20;}
//#define SDA_IN() {GPIOB->CRH&=~(0XF<<(3*4));GPIOB->CRH|=8<<3*4;}
//#define SDA_OUT() {GPIOB->CRH&=~(0XF<<(3*4));GPIOB->CRH|=3<<3*4;}
//#define SDA_IN() {GPIOB->CRH&=~(0XF<<(4*4));GPIOB->CRH|=8<<4*4;}
//#define SDA_OUT() {GPIOB->CRH&=~(0XF<<(4*4));GPIOB->CRH|=3<<4*4;}
//IO2ù×÷oˉêy
/*#define IIC_SCL_SET GPIO_SetBits(GPIOB,GPIO_Pin_10)
#define IIC_SCL_CLR GPIO_ResetBits(GPIOB,GPIO_Pin_10)
#define IIC_SDA_SET GPIO_SetBits(GPIOB,GPIO_Pin_11)
#define IIC_SDA_CLR GPIO_ResetBits(GPIOB,GPIO_Pin_11)
#define READ_SDA GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11) //êäèëSDA */
#define IIC_SCL_SET GPIO_SetBits(GPIOB,GPIO_Pin_12)
#define IIC_SCL_CLR GPIO_ResetBits(GPIOB,GPIO_Pin_12)
#define IIC_SDA_SET GPIO_SetBits(GPIOB,GPIO_Pin_13)
#define IIC_SDA_CLR GPIO_ResetBits(GPIOB,GPIO_Pin_13)
#define READ_SDA GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13) //êäèëSDA
|
最佳答案
查看完整内容[请看2#楼]
[mw_shl_code=applescript,true]/**
***********************************
* 模拟IIC通讯驱动
*
* (C) Copyright 2000-2020, **
* All Rights Reserved
***********************************
*
* @File : bsp_iic.c
* @By : **
* @Version : V1.0
* @Date : 2015 / 02 / 28
*
************** ...
|