PIC24FV16KM202 IO引脚输入高电平却读不到1

[复制链接]
1919|9
 楼主| pengf 发表于 2021-9-12 10:14 | 显示全部楼层 |阅读模式
PIC24FV16KM202 IO引脚输入高电平却读不到1;
_TRISB9=1;
Nop();
tempj=PORTBbits.RB9;
tempj=LATBbits.LATB9;
RB9引脚电压有4.6V的正脉冲,却不论是PORTBbits.RB9还是LATBbits.LATB9都始终读不到1。
pangb 发表于 2021-9-12 10:16 | 显示全部楼层
读取IO用PORTBbits.RB9,记得关闭模拟配置;输出用LAT
songqian17 发表于 2021-9-12 10:18 | 显示全部楼层
检查该引脚是否和模拟功能复用,作为数字输入,必须设置为数字引脚。
dengdc 发表于 2021-9-12 10:24 | 显示全部楼层
并且禁止复用该引脚的其他数字外设
dengdc 发表于 2021-9-12 10:26 | 显示全部楼层
作为数字输入,读PORT寄存器即可。LAT寄存器用于输出。
 楼主| pengf 发表于 2021-9-12 10:27 | 显示全部楼层
只设置过其它引脚的AD。// Analog Port Selection
ANSBbits.ANSB13=1;
ANSBbits.ANSB14=1;
要特意将RB9设为ANSBbits.ANSB9=0;?
另外有想设为输入捕捉,有影响?担也禁止了捕捉模块。
 楼主| pengf 发表于 2021-9-12 10:30 | 显示全部楼层
要特意将RB9设为ANSBbits.ANSB9=0;似乎有用,但读tempj=LATBbits.LATB9;似乎不起作用还是读不到1,而tempj=PORTBbits.RB9;能读到1。
wyjie 发表于 2021-9-12 10:40 | 显示全部楼层
LAT是输出,读状态读PORT寄存器,还有输入时是高阻态,最高把IO拉到一个确定的电平再检测
 楼主| pengf 发表于 2021-9-12 10:42 | 显示全部楼层

嗯,我再好好缕一缕吧,有了好消息及时通知大家
 楼主| pengf 发表于 2021-9-12 10:44 | 显示全部楼层

要高八位在一个字节,直接用移位指令移两位就行了,够简单了,你想要整复杂的算法吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部