zoukankan      html  css  js  c++  java
  • --------- STM32篇 ---------


    一、编译、编辑、版本控制器。

          由于STM32的固件库中,函数名、变量名都是很长,我们不可能逐一输入,这就需要用到先进的工具。

    1、编译器。仍然使用keil编译代码。

    2、编辑器。编辑器就是写代码的工具,因为keil的代码补全、提示都很差,所以要用其它工具来写代码。这就得开两个软件,一个写代码,一个编译代码。虽然这样有点麻烦,但是相对于输入那一大串函数名来比,不算什么。推荐VS、Eclipse(C/C++版本)。不推荐使用source insight(功能不够强大)。

    3、版本控制器。这个东西就是用来备份代码的,不要再用压缩包了。推荐git教程。

    二、学会固件库。

          有了上一步的准备工作之后,先买一块STM32开发板,带仿真器,248元。这里下载代码可不像51那些,用串口就能下载的了,得另外用一个仿真器。

    这里的仿真器有ST link、Ulink等,不推荐使用J link。而仿真器的接口有JTAG和SWD,推荐使用SWD,接3根线就可以了。

    推荐教材《STM32开发指南库函数教程》,也可以看开发板配套的视频。这里要掌握STM32的外设,如:ADC、RTC、CAN、IIC、SPI、UART、DMA、SDIO、IAP等。

    三、自制PCB。

          数电、模电基础差的,需要先补充点理论再来。然后下载一个Altium Designer6.9,看《Altium Designer视频教程》。根据自己感兴趣的小玩意来做一块PCB。画好之后先发到群里,让大家指导一下,然后再发到嘉立创打样,很便宜的,而其它材料则到淘宝上买。主要掌握焊接、维修、原理图、PCB等基本功,自己多动手就能掌握的。

    四、单片机外面的世界。

          就算你现在能玩转单片机,但也只是打开了一扇小小的窗户而已,下面你可以选一个方向,但是工作中可以会用到几个方向的知识,反正尽量多学点。

    1、嵌入式操作系统。不推荐用51单片机跑系统。而STM32可以跑ucos II、ucos III、free RTOS、coos、RT-Thread、RTX等。推荐学ucos II,教材是任哲的《嵌入式实时操作系统ucosII原理及应用》,只要掌握一种嵌入式操作系统,其它都可以触类旁通。移植系统时,会用到汇编。推荐学习free RTOS或者RT-Thread。

    2、ucgui/STemwin、Touch GFX。STM32可以通过FSMC接口来驱动TFT LCD屏,这里要用到图形界面库,可以学STemwin,STemwin其实就是ucgui,推荐《STemwin开发手册》,也可以学习Touch GFX。

    3、上位机。使用单片机采集信号送到PC机上,而PC机需要一个上位机来控制单片机,这个上位机可以用Labview、C++、C#、JAVA、甚至是HTML5来写。其中最常用的是单片机跟PC机的串口通信,上位机建议用C#或者QT来写,尽管还有很多企业用MFC(C++库),但是上手比较难,不推荐学MFC。推荐的教材是《C#入门经典》、《QT简介》。

    4、数据结构和算法。推荐的教材是周航慈的《嵌入式系统软件中的常用算法》、《数据结构课件》。

    5、接口应用。单片机的内部资源比较少,很多时候需要外接一些芯片、传感器。这里需要到用模电、电子测量、计算机网络等知识。推荐的教材是陈尚松等著的《电子测量与仪器》和谢希仁的《计算机网络》。此外,还会用到一些通信模块,比如Zigbee、WIFI、蓝牙、NB-IOT、433模块、NRF24L01、RFID智能卡等,有兴趣可以弄一下,这些都是比较实用的技术。

    五、其它问题。

    1、单片机的代码是如何运行的?

    推荐看《计算机组成原理》。

    2、FPGA。

    可以参考本博客的《如何学习FPGA》。

    3、嵌入式。

    很多电子专业的学生就感觉嵌入式很难,那是因为嵌入式涉及很多计算机领域的知识,而这些知识很多是电子专业不开课的,基本功没过关,学起来肯定吃力。具体的学习路线可以参考本博客的《如何学习嵌入式软件》。

    4、硬件设计。

    可以参考本博客的《如何学习硬件设计——理论篇》、《如何学习硬件设计——实践篇》。

    5、开发板的选择。

    这里推荐的开发板都是一整板(上面的链接并非广告,只是确实有人不会选开发板才给出来的),里面有很多芯片的。不推荐一个核心板留了很多接口,每个接口都要另外买一块小板,这种板叫子母板,一个母板不贵,但是子板很多,买多几块就花很多钱,而且子板很小,容易丢。

    6、为什么学生很难定方案?

    因为学生积累的东西并不多,考虑的不那么周全,很多知识似懂非懂,难以制订方案。这时要多接触新事物,只要积累的多,就自然而然的能出方案了,不用太急躁。

    7、MDK。

    Keil有51版本和ARM版本,其中ARM版本的Keil又称为MDK。

    8、stm32 cubemx。

    cubemx可以自动生成配置代码,虽然很方便,但不建议初学者使用,会让你懒得不想写代码。

    9、为什么编译没问题,下载到单片机却不对?

    编译没问题,说明语法没问题,但不能表明逻辑、功能是正确的。

    10、为什么网上都有那么多代码可以复制粘贴,还要自己写代码?

    因为网上能找到的代码很多,而网上找不到的代码却更多。

    11、proteus及multisim仿真。

    proteus很适合仿真单片机,但是仿真的效果不能替代实物,一切以实物为准。

    multisim适合在学模电时,做一下仿真,以帮助理解电路。

    12、为什么有的STM32开发板可以用串口下载代码,还需要仿真器吗?

    STM32有个IAP的功能(又称为远程升级),可以用任意的接口来下载代码,但是这种方法是建立在芯片本身有IAP的代码,才可以使用。

    在一个没有任何代码的芯片上,不能使用串口下载代码,这时,必须使用仿真器。

    13、单片机不就是C语言嘛,还需要学单片机原理?

    在工程上会遇到单片机内部资源的调度、IO口的电气特性、带宽等问题,你不懂单片机原理是解决不了这些问题的。

    14、单片机的汇编和微机原理的汇编。

    微机原理讲的是PC机中x86架构的汇编,和51单片机的汇编是有区别的。不要看错书。

    而51单片机的汇编和STM32的汇编也是有区别的,51的是CISC架构,而STM32的是RISC架构。

    15、除STM32以外的高端单片机品牌。

    有NXP的LPC、新唐、GD32(高仿STM32)、英飞凌、TI的MSP430、Microchip的PIC、瑞萨、ADI、Maxim(美信)、三星。

    16、其它单片机品牌。

    合泰、辉芒、松瀚、海尔(东软)、STC、义隆、新茂、中颖、ABOV(现代)、Megawin(笙泉)、晟矽微、HOLTEK(盛扬)、九齐、佑华。
    ————————————————
    版权声明:本文为CSDN博主「队长-Leader」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/k331922164/article/details/44681093

  • 相关阅读:
    js 那些事二 javascript中的闭包理解
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java入门
    Java入门
    Java入门
  • 原文地址:https://www.cnblogs.com/tendercool/p/12664680.html
Copyright © 2011-2022 走看看