初级会员

- 积分
- 145
- 金钱
- 145
- 注册时间
- 2014-8-21
- 在线时间
- 26 小时
|
本帖最后由 YTCH2014 于 2021-5-18 13:24 编辑
程序是在战舰开发板TFTLCD显示实验例程中改的,已经能够显示温湿度,端口可以自己在myiic.h文件中修改,初始化的端口时钟在IIC_Init函数中修改。读写程序是用的其他热心网友的,自己修改的下面代码是接口部分,
- #define data_bit 7
- #define sck_bit 6
- #define IICDataPort GPIOB
-
- //IO方向设置
- #if(data_bit>7)
- #define SDA_IN() {IICDataPort->CRH&=(~(0x0000000f<<((data_bit%8)*4)));IICDataPort->CRH|=(0x00000008<<((data_bit%8)*4));}
- #define SDA_OUT() {IICDataPort->CRH&=(~(0x0000000f<<((data_bit%8)*4)));IICDataPort->CRH|=(0x00000003<<((data_bit%8)*4));}
- #else
- #define SDA_IN() {IICDataPort->CRL&=(~(0x0000000f<<((data_bit%8)*4)));IICDataPort->CRL|=(0x00000008<<((data_bit%8)*4));}
- #define SDA_OUT() {IICDataPort->CRL&=(~(0x0000000f<<((data_bit%8)*4)));IICDataPort->CRL|=(0x00000003<<((data_bit%8)*4));}
- #endif
-
- #if(sck_bit>7)
- #define SCK_OUT() {IICDataPort->CRH&=(~(0x0000000f<<((sck_bit%8)*4)));IICDataPort->CRH|=(0x00000003<<((sck_bit%8)*4));}
- #else
- #define SCK_OUT() {IICDataPort->CRL&=(~(0x0000000f<<((sck_bit%8)*4)));IICDataPort->CRL|=(0x00000003<<((sck_bit%8)*4));}
- #endif
- //IO操作函数
- #define IIC_SCL PBout(sck_bit) //SCL
- #define IIC_SDA PBout(data_bit) //SDA
- #define READ_SDA PBin(data_bit) //输入SDA
复制代码
|
|