首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读和理解MCU数据表和代码

阅读和理解MCU数据表和代码
EN

Stack Overflow用户
提问于 2012-04-05 19:55:35
回答 2查看 4K关注 0票数 1

对于阅读MCU制造商的源代码样本,有什么建议吗?我是一个mcu编程的新手,目前我有一个MCU,数据表和它们的示例代码。但问题是,示例代码似乎是为有经验的用户编写的。他们为什么要初始化RS232,为什么要设置端口1的第四位等等,

您是否有阅读技巧或链接,我可以在哪里获得有关如何阅读MCU的数据表和示例代码的信息?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-06 10:25:05

我想经验是我唯一能给出的答案。就像一般的编程一样,随着时间的推移,你不仅可以获得经验,还可以学习时髦的单词和概念。使用微控制器,您可以学习阅读数据手册、原理图等。了解开路漏极、开路集电极、弱上拉等。对于串行端口,由于某些原因,它们总是过于复杂。微控制器和串口最难的部分通常是弄清楚如何编程以获得正确的时钟除数,一些微控制器串口是直接的,其他的过于复杂,一些文档是好的,一些文档是坏的,等等。

另一个答案是数据表总是错误的。信息中总是有漏洞,你必须破解这些漏洞才能弄清楚。不要只使用数据表在真空中编写数千行代码,编写少量代码几行到几十行,测试,然后继续,当从数据表编程时,您可以在一天内编写和调试比其他路径更多的代码行。数据手册通常不是由实际设计硬件的工程师编写的,有时是初级工程师或非工程师。有时信息是错误的,有时文档是针对不同但相似的部分,而不是您拥有的部分。如果他们提供的软件确实做了一些事情,有时(并不总是)比数据手册更准确(我说的数据手册假设用户手册,程序员参考手册,无论供应商如何称呼硬件的寄存器、地址和位定义的文档)。

随着时间的推移和经验的积累,你可能会发现,如果你有足够的视野,一些供应商倾向于在向用户提供信息方面做得更好,另一些供应商则不是,有些供应商将秘密埋藏在库中,有时是二进制形式,而不是源代码。有时,秘密隐藏在编译器和它们提供的其他工具中(好吧,回到apis和库中)。我倾向于将这样的公司列入黑名单,但有时你不能总是这样。例如,ARM在提供信息方面做得非常好。问题是他们有如此多的核心,每个核心都有许多选项,本质上非常相似(支持相同的指令集),以至于很难从文档中整理出你正在使用的处理器做了什么和没有做了什么。Atmel,关于atmel的一些东西很难说清楚,文档通常远远高于标准,但更重要的是,atmel的一些东西使它们在客户中很受欢迎。你永远不会看到arduino这样的追随,文化,选择一个词,与微芯片图片为例。有很多图片的追随者,但它不像atmel的世界(早在arduino事件发生之前就存在了)。

另请注意,您可能无法通过单个示例程序和单个数据表了解产品的历史,可能存在用于多代芯片的代码,例如,可能存在较旧的芯片或较新的芯片所需的位,并共享该位被操作的相同代码。这一点看一个数据表可能是有意义的,而看另一个数据表是没有意义的。这就是黑客的用武之地,在没有尝试的情况下,看看会发生什么。也许研究家族中的其他部分,据说这段代码支持它可能会更有意义。

谷歌是你的朋友或任何你最喜欢的搜索引擎,找到尽可能多的开源代码和其他特定设备或任何东西的项目。在这个层面上,黑客是必要的,我不是在坏的意义上使用这个术语,黑客的意思是你必须尝试数据表中记录的一些比特,看看这是否真的有效,如果不是,那么看看它做了什么,如果可能的话,看看其他源代码,看看你是否能弄清楚。就像没有完美的汽车,每加仑汽油可以行驶无限英里,完全安全,持久,便宜,也没有完美的芯片,有完美的数据表和示例代码。如果你想在这个软件/硬件层面上工作,你必须亲力亲为,不要害怕让一些烟雾从芯片中冒出来(芯片中有有限数量的烟雾,如果你让一点点烟雾出来它就不会工作),等等。

如果您不特别询问正在使用的mcu或注册器的原因是因为它是封闭源代码产品或在保密协议背后,那么您可能有权访问制造该产品的公司,并且您应该能够从他们那里获得支持。通常比你从一家你不需要签署保密协议的公司得到的支持更好。不是那种开放的文档,开源公司是不好的,只是如果你购买的公司对你感兴趣,到了展示内部保护信息的程度,他们就会有足够的兴趣让你更好地接触制造/了解产品的真正的工程师。如果情况并非如此,并且您可以谈论它,那么请不要害怕发布一个关于您想要了解的寄存器和位的问题。

票数 2
EN

Stack Overflow用户

发布于 2015-02-28 16:47:21

单片机数据表中的示例代码和流程图是初始化特定外设(如RS232)的良好起点。您只需从那里开始,并在MCU数据表中跟踪bit信息及其功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10028104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档