POOPE 发表于 2021-7-7 12:48:09

427_PIC18F4580 LED闪烁例程品读

         全部学习汇总: https://github.com/GreyZhang/PIC18F
         既然代码都读了,还是留点学习笔记吧!
         我在某宝上弄了一个开发板,附带了不少例程代码。令我惊奇的是第一个LED闪烁就没调试成功,后来,我自己改好了。结果,我发现了第二份LED闪灯程序。做个简单的代码分析:

         几个问题点的关注:

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

         这里的配置依然是错误的,一点都不意外。从这些痕迹上似乎感觉出来了曾经这个工程师的疑惑,他甚至保留了一份代码作为注释备份以协助恢复。有意思啊!
         不过,这里跟手册阅读是否细致有很大关系。我觉得他最终调试成功可能有一定偶然性,因为他用的这种方式文档中没有描述但是却出现在了文档的一份代码里。

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

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

  
文档来源:51CTO技术博客https://blog.51cto.com/greyzhang/2993370
页: [1]
查看完整版本: 427_PIC18F4580 LED闪烁例程品读