OpenEdv-开源电子网

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

stm32如何同时监测16个IO口的上升沿

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-5-11
在线时间
4 小时
发表于 2018-1-5 09:17:52 | 显示全部楼层 |阅读模式
1金钱
如题,用stm32同时监测16个IO口的上升沿,当检测到16个IO口中任意一个有上升沿时,将这16个IO的电平拼成一个16位的数据通过NRF24L01发送出去(一个字节8位)。后面拼数据解决了,就是如何同时监测?请各位大神帮帮忙

最佳答案

查看完整内容[请看2#楼]

根本不需要那么麻烦。 用1个中断,搞16个二极管,将上升沿导入同一个中断IO。只要任何一个IO有上升沿,就会产生中断,同时通过16个IO即可读取所有状态。 这样,问题很容易解决。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-1-5 09:17:53 | 显示全部楼层
根本不需要那么麻烦。
用1个中断,搞16个二极管,将上升沿导入同一个中断IO。只要任何一个IO有上升沿,就会产生中断,同时通过16个IO即可读取所有状态。
这样,问题很容易解决。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
632
金钱
632
注册时间
2016-3-30
在线时间
67 小时
发表于 2018-1-5 10:49:40 | 显示全部楼层
用中断的方式不行?只要有中断产生,就读取输出发送出去。
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-9-24
在线时间
13 小时
发表于 2018-1-5 11:15:41 | 显示全部楼层
本帖最后由 zhan2018 于 2018-1-5 11:16 编辑

同时?怎么个同时?实际上不可能同时,触发事件进入单片机,一样是逐个执行;我的意思是:你把16个上升沿分割成时间片,然后排序使用;你这个题目只是一个16口并口数据转串口处理。
你可以考虑FSMC这个配置
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-12-14
在线时间
17 小时
发表于 2018-1-5 12:20:50 | 显示全部楼层
完全可以的:1 使用外部中断,正好16个,随时监测触发电平 高,收到触发电平后,使用库函数 读取这16路电平,即2字节 把这个数据发出去就行;2 还可以使用74系列的并行数据转串行数据 读取这个串行数据就行,节省IO资源
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 19:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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