你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

怎么实时监听一个IO引脚的电平变化

[复制链接]
vipwming 提问时间:2018-7-26 18:00 /
如题,菜鸟求教。
我只知道读取gpio口电平可使用DigitalIn的read函数,怎么样做到实时监听呢?只能在while(1)里面循环读取吗?
收藏 评论11 发布时间:2018-7-26 18:00

举报

11个回答
疯de_恒 回答时间:2018-7-26 18:30:08
用中断吧,上下降沿都进中断,这样就实时了。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

huangyanga 回答时间:2018-7-26 18:34:40
是AD输入口的话,配置成ADC模式,不断的读AD值

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

wenyangzeng 回答时间:2018-7-26 19:23:04
或者一直读IO口,或者采用上下沿中断来解决。

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

jakecumt 回答时间:2018-7-26 19:55:15
IO中断最直接,要是有操作系统也可以 做一个任务检测也可以

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

黑夜之狼 回答时间:2018-7-27 09:13:47
如果真的要做到实时,估计中断才能解决吧
如果放在while(1)里面,还有其他的代码的情况下无法做到
所以,用中断,把这个IO设置成中断触发,一旦发生变动,马上响应中断

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

wudianjun2001 回答时间:2018-7-27 09:23:33
中断是最好的办法,或者定时扫描,按键都是这样的

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

damiaa 回答时间:2018-7-27 09:57:10
用中断吧,上下降沿都进中断

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

jinglixixi 回答时间:2018-7-27 10:21:14
视精度的要求和实际任务,只是看电平的高低使用IO口即可,若看精细的变化就要用A/D引脚了。功能不复杂的情况下,循环比较简单;而使用中断则不易丢失关键的信息变化。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

xiaolingoei 回答时间:2018-7-27 10:48:22
1、GPIO_ReadInputDataBit()函数可以直接读取I/O变化,加一下判断就可以了
2、设置I/O口的外部中断,可以判断上升、下降或者上升下降都判断

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

TLLED 回答时间:2018-7-27 13:51:20
看实时要求有多高,实时性要求比较高的话,需要用中断,输入捕获功能,实时性要求不是特别高,可以在主函数里面读IO口,也可以在定时器中断里面定时去读IO口。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

STM1024 回答时间:2018-7-27 14:07:10
肯定是配置成外部中断啊

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版