IIC实验位带操作问题

2019-07-21 07:11发布

本帖最后由 satine 于 2018-12-4 11:03 编辑

#define IIC_SCL    PBout(8) //SCL
#define IIC_SDA    PBout(9) //SDA         
这两个宏对应
IIC_SCL    =1可不可以表示GPIO_SetBits(GPIOB, GPIO_Pin_8)
IIC_SCL    =0可不可以表示GPIO_ResetBits(GPIOB, GPIO_Pin_8)

我感觉是一样的,为什么改了之后IIC实验不成功呢?求原子哥解答。谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
半日键盘侠
1楼-- · 2019-07-22 01:38
如果,你自己的代码,没有这样的宏定义,就不可以这样做,只能用GPIO_SetBits(GPIOB, GPIO_Pin_8)和GPIO_ResetBits(GPIOB, GPIO_Pin_8)
那种方法是将0和1写到寄存器里了。
douxiaolingyun
2楼-- · 2019-07-22 05:09
那是你宏定义写的不对。
douxiaolingyun
3楼-- · 2019-07-22 06:46
#define SCK   GPIO_Pin_11           //PA11
#define SDA   GPIO_Pin_12           //PA12

#define RS    GPIO_Pin_11           //PC11
#define RST   GPIO_Pin_10    //PC10
#define CS    GPIO_Pin_12          //PC12

#define LED   GPIO_Pin_8    //PG8

#define GPIO_SPI   GPIOA
#define GPIO_SPI1  GPIOC
#define GPIO_SPI2  GPIOG

#define LED_H   GPIO_SetBits(GPIO_SPI2,LED)
#define LED_L   GPIO_ResetBits(GPIO_SPI2,LED)

#define SPI_SCK_H  GPIO_SetBits(GPIO_SPI,SCK)
#define SPI_SCK_L  GPIO_ResetBits(GPIO_SPI,SCK)

#define SPI_SDA_H  GPIO_SetBits(GPIO_SPI,SDA)
#define SPI_SDA_L  GPIO_ResetBits(GPIO_SPI,SDA)

#define SPI_RS_H   GPIO_SetBits(GPIO_SPI1,RS)
#define SPI_RS_L   GPIO_ResetBits(GPIO_SPI1,RS)

#define SPI_RST_H  GPIO_SetBits(GPIO_SPI1,RST)
#define SPI_RST_L  GPIO_ResetBits(GPIO_SPI1,RST)

#define SPI_CS_H   GPIO_SetBits(GPIO_SPI1,CS)
#define SPI_CS_L   GPIO_ResetBits(GPIO_SPI1,CS)
douxiaolingyun
4楼-- · 2019-07-22 07:38
这是我写的SPI的引脚定义 。你可以这样写
satine
5楼-- · 2019-07-22 09:07
 精彩回答 2  元偷偷看……

一周热门 更多>