OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4592|回复: 2

MC96F7816芯片的GPIO置高和置低怎麼實現的?

[复制链接]

20

主题

70

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2017-11-2
在线时间
122 小时
发表于 2019-2-28 08:18:06 | 显示全部楼层 |阅读模式
10金钱
看了MC96F7816芯片的某個例程,其中有GPIO引腳的置高和置低,
還有引腳輸入輸出類型的設置,實在沒看懂,函數參數里都沒有PinNo,
它怎麼實現引腳置高置低呢?還有下面的IO,PullUP,
#define Clr(Port)  {Port &= ~(1<<Port##PinNo);}//置低   實際執行時PinNo值從哪裡來?
#define Set(Port)  {Port |= (1<<Port##PinNo);} //置高

#define SetPinIn(Port,PullUp) {(Port##IO &= ~(1<<Port##PinNo)); (PullUp? (Port##PU |= (1<<Port##PinNo)): (Port##PU &= ~(1<<Port##PinNo)));}

#define SetPinOut(Port,PullUp) {(Port##IO |= (1<<Port##PinNo)); (PullUp? (Port##OD |= (1<<Port##PinNo)): (Port##OD &= ~(1<<Port##PinNo)));}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-3-1 02:21:30 | 显示全部楼层
回复

使用道具 举报

20

主题

70

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2017-11-2
在线时间
122 小时
 楼主| 发表于 2019-3-1 10:05:31 | 显示全部楼层

原子哥,主要是看沒看明白,#define SetPinIn(Port,PullUp) Port只是對應
某個端口,如Port0,Port1,裡面並沒有說明
要將那個引腳設置成輸入,執行的時候執行哪個引腳呢?
另外如果要把之前設置為輸出的引腳懸空,該怎樣設置?
比如定義兩個引腳
#define CH1DetPort        P6
#define CH1DetPortIO      P6IO
#define CH1DetPortPU      P6PU
#define CH1DetPortOD      P6OD
#define CH1DetPortPinNo   6
#define CH1DetPin         P66

#define CH2DetPort        P6
#define CH2DetPortIO      P6IO
#define CH2DetPortPU      P6PU
#define CH2DetPortOD      P6OD
#define CH2DetPortPinNo   7
#define CH2DetPin         P67
端口定義的都是P6調用SetPinIn(CH2DetPort,N_NoPullUp);的時候怎麼知道調用的是P67還是P66呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-27 09:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表