427_PIC18F4580 LED闪烁例程品读

19 篇文章 5 订阅

         全部学习汇总: https://github.com/GreyZhang/PIC18F

         既然代码都读了,还是留点学习笔记吧!

         我在某宝上弄了一个开发板,附带了不少例程代码。令我惊奇的是第一个LED闪烁就没调试成功,后来,我自己改好了。结果,我发现了第二份LED闪灯程序。做个简单的代码分析:

         几个问题点的关注:

  1. 函数重复调用存在,36行;
  2. 串口初始化没用,34行;
  3. 看门狗相关代码注释错误,其实没开看门狗。40行;
  4. 既然没开看门狗,喂狗没用。45行(这里我将其屏蔽了);
  5. PORTE的处理诡异,感觉应该是蒙中了结果,没有仔细查看手册。实在是忍不住去查了一下手册,其实这里实现了LED的闪烁主要是因为把几个管脚在输入与输出模式间进行了切换。而且,0xFF没有意义,0x0F即可。经过我的实际测试,果真如此。

         这里的配置依然是错误的,一点都不意外。从这些痕迹上似乎感觉出来了曾经这个工程师的疑惑,他甚至保留了一份代码作为注释备份以协助恢复。有意思啊!

         不过,这里跟手册阅读是否细致有很大关系。我觉得他最终调试成功可能有一定偶然性,因为他用的这种方式文档中没有描述但是却出现在了文档的一份代码里。

         从这份代码看的话,端口的操作或许还真就是有两种方式。仔细搜索了整个文档中的几个关键字,最终还真找到了一个出处。

         或许,这个就是这个MCU编程的精髓参考表了吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值