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

查看: 1334|回复: 3

【STM32F3手记】山寨的山寨测线器

[复制链接]

4

主题

33

回帖

0

蝴蝶豆

初级会员

最后登录
2018-4-25
发表于 2013-4-28 11:46:00 | 显示全部楼层 |阅读模式
 话说初中的时候学得一个重要的理论,就是我们还处在“初级阶段”,而且这个初级阶段据说还很漫长,于是大街上满眼的山寨货,经常是形似神缺,总是差点那么点儿意思。就拿今天要说的这个测线器来说吧,市面上经常看到的只是个8根线导通性的检测,可是以太网不是点灯泡,因此完整的功能还应有协议的检测(还可以测量长度),所以说平时看到的那些8个灯的测线器,只能算是山寨货。
为了弘扬初级阶段的山寨……我意思是自力更生的精神,我决定山寨一个山寨测线器。
首先看看原版的山寨测线器是什么样子。核心的部件是这样的:

这样,让1个引脚为低,另外7个为高,就可以依次点亮对应的led。所以,只要让stm32的8个引脚按照上述的方式工作就可以了,但是本人stm32小白一枚,还搞不明白怎么把stm32的io配成双向的,于是在人才济济的QQ群里问了一下,马上就有了回音——YouRaiseMeUp马上回复了。YouRaiseMeUp非常热心的提供了一段F1的代码,是他用GPIO模拟I2C时的配置方法,真是好人啊!于是就搞定了。
首先,为了轮询方便,把led和pin放进数组里:
Led_TypeDef a_LEDs[]={LED3,LED5,LED7,LED9,LED10,LED8,LED6,LED4};
uint16_t a_PINs[]={GPIO_Pin_0,GPIO_Pin_1,GPIO_Pin_2,GPIO_Pin_3,GPIO_Pin_4,GPIO_Pin_5,GPIO_Pin_6,GPIO_Pin_7};
为什么led是这个顺序呢?看这张图:

这下大家知道为什么原理图里PE的8个引脚弄成这么个怪顺序了吧?

然后是监测函数,入口参数只有一个,表示检测的是0~7中的第几个脚:
uint8_t testPin(int i_seq)
{
         GPIO_InitTypeDef GPIO_InitStructure;
        int i=0;
        uint16_t PortVal;
        uint8_t t;
       
        PortVal=0;

        for(i=0;i
回复

使用道具 举报

13

主题

655

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-7-13
发表于 2013-4-28 14:20:04 | 显示全部楼层

RE:【STM32F3手记】山寨的山寨测线器

噢 测网线通断的
回复 支持 反对

使用道具 举报

89

主题

485

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
发表于 2013-4-28 15:31:33 | 显示全部楼层

RE:【STM32F3手记】山寨的山寨测线器

楼主真棒,顶!!!
回复 支持 反对

使用道具 举报

24

主题

591

回帖

0

蝴蝶豆

中级会员

最后登录
2020-12-2
发表于 2013-4-28 23:04:03 | 显示全部楼层

RE:【STM32F3手记】山寨的山寨测线器

哈哈
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版