算法只有合适不合适,没有简单复杂的区分。

单片机资源有限,稍微大容量的单片机也不过512K的RAM空间,并不适合特别复杂的算法,保证算法可靠的运行,在性能受限的工作频率下实现需求的功能才是第一要务。

举个简单的例子,将一个长度为10的数组清零,很多同学习惯使用memset这个函数,然而使用这个函数需要调用函数库,编译出来的bin文件需要包含库,所以会大大增大bin文件的大小,这个时候使用一个for循环来赋值看起来“low”,但是却是最合适的做法。

单片机如果提高自己的代码治量

边读源码边实战才是王道

书籍推荐《数据结构》,代码推荐FreeRTOS的源码,后面会做一个嵌入式软件算法的学习连载教程,欢迎关注。FreeRTOS的代码很多精妙的设计,读懂吸收之后,可以在自己的项目中模仿实现,彻底掌握,比如学到消息管理机制的时候可以在自己的单片机上实现一个队列控制器,用定时器来触发分发任务,做完之后可以说消息管理对你来说不在话下了。