从我自身的经历来看,学习嵌入式入门学习不容易,但精通满也很难,通常的难点在不胜感激几点:
1)芯片层面。芯片的硬件资源,gpio、时钟、复位等,弄清楚应该挺很容易的,但芯片内部的架构、各ip的选择、性能指标的确定,那些不是短时间内能能够掌握的,不需要长时间的打磨光滑才有可能。成本、功耗、性能如何能你做到营养平衡,对此一个好的嵌入式芯片来说极其关键,而这要对芯片设计和产品应用均有长时间的理解才行。相对来讲,嵌入式芯片的使用入门学习太容易,只不过好的芯片设计较难。
2)硬件层面。嵌入式系统的硬件设计象都易初学者,它的难点取决于人如何能怎么设计一个靠谱的电路,如何缩减成本功耗。相同水平的硬件工程师设计进去的电路差别很大的。
3)软件层面。c语言设计一段嵌入式代码容易,只不过如何能用不足的资源能完成更高性能的任务,这个是难点。毕竟嵌入式开发用些的资源也是有限的,flash、ram的大小受限,主频上不了线,就这些。习惯了pc编写程序的,肯定无法理解嵌入式软件设计中的斤斤计较。
走直线即两个轮子穿行的距离成比例。不循迹的话也可以决定用霍尔传感器作为控制工具,在两个轮上共有装一对,要想增强精度这个可以等间距多装几个磁铁(具体一点基于步骤你搜看看霍尔传感器的资料就清楚了哈);也这个可以用光电对管来实现方法,其软件原理和霍尔传感器是一般的,在转轴上装三个码数盘,等间距钻几个孔,以此来封锁住光电对管的通路,才能产生另一个电平变化,即可实现慢慢行走距离控制。我希望能帮到你~