分享

入坑嵌入式(stm32单片机方向)你所需要的秘籍宝典整理

 袁先森lemon 2020-04-18

第一计:我要买开发板

一般入坑stm32的比较多,如果是msp、51、avr其他系列的暂时不谈。这里按功能性推荐。

1、入门学习外设请使用野火stm32f429igt6,这款开发板,搭配各种外设,并且性能高,性价比也高,适合初入学习。并且资料繁多,市面上429的特别多,项目中也用的多,推荐。

2、自主研究制作或者收藏需要核心板请选择反客科技stm32f429igt6,它是一个专门当做核心板的板子,全网最好看,外设最全,全网的核心板,缺少一个sd卡,并且外观丑,这个核心板,不仅是沉金制作,而且外设包括一个sd卡,这是其他家没有的。

第二计:我要看教程

教程,种类繁多,如果是深入了解,可以看野火的视频教程。如果基础ok,请看安富莱提供的各类教程文档,每天记得天天逛安富莱的论坛,收获非常大。代码从一开始的野火代码,要逐步进行提高,所以也是要往安富莱的教程里面提供的代码跟进。没有看过安富莱论坛和代码的,不配玩32。

关于库的选择,还是推荐hal库,是st主推的,标准库已经不更新了,并且st提供的各类软件比如cubemx、cubemxide都是基于hal跟ll的。关于ll,其实就是寄存器操作,最好混合使用,方便的话推荐LL库。学习使用ll库对自己理解外设的能力有比较大的提升。

其次,其实cortex-m的芯片,库都是相似的,底层都是调用寄存器操作,所以通用的函数无非是以下几个,如果掌握了寄存器操作,能够独立对外设进行配置,基本可以自己写hal、ll库了。

第三计:我要学RTOS

嵌入式的rtos种类也很多,这里还是主推国产rtthread nano版本内核,对就是nano版本,不推荐master版本,其次项目中可以使用freertos和ucosii、ucosiii,其他的例如liteos、embos、rtx4、rtx5、linux等等,不同的场合有不同的自己的优势功能。主要看项目需要以及芯片ram、flash资源。

第四计:我要用软件包

接下来就是跨平台可移植的软件包推荐了。

1、首先最常用的按键,推荐:https://github.com/0x1abin/MultiButton,最好,没有之一。其他开源的按键驱动,存在各种不同的问题,包括按键丢失,冲突等等。

2、其次是类似linux的shell命令行,推荐:https://github.com/NevermindZZT/letter-shell,如果使用rtthread可以使用finsh,这两个功能是一样的。

3、一个定时器拓展多个定时器驱动,推荐:https://github.com/0x1abin/MultiTimer,

4、ringbuff驱动,适合用在各类没有dma的单片机的串口中,推荐:https://github.com/XinLiGH/RingBuffer,这个ringbuff其实就是linux中常用的kfifo。

5、内存管理,推荐:http://www.gii./tlsf/,tlsf采用两层链表,适合用在各种rtos中,线程安全,目前ucos采用的就是这个方案。

6、json脚本解析,推荐两个,

一个是cjson:https://github.com/DaveGamble/cJSON,对网络中json封装的数据进行解析,比如天气:和风api,时间:北京api。

一个是jsmn:https://github.com/zserge/jsmn。

7、ini文件解析:https://github.com/ndevilla/iniparser,对文件是ini类型的进行内容的解析。

8、加密算法:https://github.com/ARMmbed/mbedtls,包括aes、sha、md5、rsa等等。

9、spi flash通用驱动库:https://github.com/armink/SFUD,统一不同种类flash的驱动。

10、硬件中断错误追踪:https://github.com/armink/CmBacktrace,可以用来检测硬件中断,并且知道产生的原因。

11、日志库和log库:https://github.com/armink/EasyLogger,对printf打印的内容进行美化,并且根据需要进行相关内容的存储。

12、at模快通用接收处理驱动:https://github.com/qianchenzhumeng/ESP8266-STM32F103,这里推荐at模块都按这种驱动进行接收和发送。适用各类单片机和各类at模块。不限制stm32。

13、lua在嵌入式的移植:https://github.com/lua/lua,可以使用lua指令控制单片机。

还有其他的软件包,大家可以自己寻找。

以上搞定,基本单片机和你无缘了,开始往fpga、linux方向吧,自己做个单片机出来,奥利给!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多