导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[分享]STM32嵌入式入门必看之文章-----介绍非常详细[ko_liuda]

 *第31812篇: [分享]STM32嵌入式入门必看之文章-----介绍非常详细!

  
楼 主:ko_liuda 2011年5月21日13:53
 [分享]STM32嵌入式入门必看之文章-----介绍非常详细!
STM32嵌入式入门必看之文章-----介绍非常详细!(学习STM32的理由!!!!)


为什么要写这篇文章呢?这是一篇关于嵌入式入门的文章,因为我在进入嵌入式这个领域之前,也是遇到过非常多非常多的困难,所以呢,希望写下这篇文章,让大家看看少走弯路。
        首先,我打算先列举一下大家问得最多的几个问题,然后我们一起由问题切入进行一些讨论。
问题1:我是学单片机好还是直接学STM32好???
问题2:STM32如何才能快速入门?
问题3:为什么是STM32呢?为什么不是ARM9,ARM11呢?
下面我将逐个答复
首先问题1:我是单片机好还是直接学STM32好呢?
答:首先我们谈下目的,你学习的最终目的是能够开发产品或者成为项目经理;而目前市场上的单片机都基本用C语言了,用汇编进行开发的项目已经非常少了
在硬件接口这个环节上都一样:学51单片机和学STM32都是一样的,主要看其市场上的资料是不是足够充分,都是调用硬件的接口,控制I/O,完成相应的功能
在软件这个环节上,STM32要强过51单片机:为什么这么说呢?学STM32它自带一个官方的库,而这个库的源代码是开放的;而51单片机却没有,也就说,当你做一个具体项目的时候,用STM32开发项目速度会比用51单片机要轻松快捷,方便,并且BUG也少.
ST的这个库专门是由ST官方团队打造的,是经过详细认真测试过的,例如:你要做处理器支持USB的U盘功能,对51来说,你可能需要在网上去找这样一个驱动,然后移植到51单片机上,这样的缺点是:移植本身就比较累,比较麻烦,并可能有些代码不一定经过验证了的,很难保证没有BUG;而STM32是官方推荐的库源代码,这些功能早就有了,所以用STM32开发项目做起来非常的轻松,愉快,放心,BUG也少。
从选型方面考虑:STM32的性价比与单片机相比,虽说单片机很便宜了,一般市场上就5块钱左右,而STM32最便宜的是10元多一点,但是如果比性价比,STM32还是很要强过51单片机很多,为什么呢?因为首先STM32是72MHZ的主频,而51单片机是10多M,随着未来产品功能增多了,要求越来越高,可能51单片机的速度和性能就满足不了需求,而STM32足够强劲的主频,可以延缓这个问题,使得您的产品周期生命得到延长,而且你有其他新需求也可以灵活增加上来,因为STM32完全有能力负担得起。
 
问题2:STM32如何才能快速入门?
答:首先就是最好具备基本的电子基础,如果您只有纯软件基础,那就应该打扎实C语言基础,然后弄一块开发板,边学边补充硬件电子方面的知识,因为软件背景去理论的学硬件,那是非常枯燥的事情,而且效果也不一定理想;那么此时你就需要一款比较的板子,板子大与小,功能多与少都不是那么重要,这里最重要的就是要资料丰富,资料丰富,才是最好的;我当时就从同事那里弄了一块STM32神舟系列的板子,大概花了1,2个星期就正式入门了。以下是我摘抄的关于那个板子的一些特点,大家可以看看:
关于STM32神舟开发板的特点有哪些呢?????
特点1:STM32神舟系列的每款开发板都有一个非常详细的几百页的说明手册。有很多爱好者反映,买到的开发板没有手册或手册不全,手册不详细,拿到手后没有什么用,无从下手,那么您可以考虑STM32神舟系列的开发板,其中神舟IV号的手册有将近700多页之多,无论还是从原理还是从代码都是非常值得阅读的资料书籍。  
特点2:开发板所带的例程代码非常好,易懂和方便移植。很多开发板的代码写得很难阅读,不规范,有的甚至是用寄存器实现的代码,可读性非常差,并且不容易重用到新的实际项目中,而STM32神舟系列的开发板,全部用ST的专用库实现,库代码全部开源,库即是将底层寄存器部分代码全部封装成函数,融入了软件设计的架构理念,想跟踪到硬件实现的驱动底层,就跟进对应的函数即可看到一切原始代码,所以您可以有选择的想看寄存器版本就看寄存器版本,想看函数库版本就有函数库版本,无论对实际项目也好,针对学习也好,两全其美!!!
特点3:神舟系列板子因为系列全,所以技术支持以及技术进一步拓展空间大。许多单独的开发板技术支持根本不行,有的就算是技术支持不错,但是你想更深入一步去学习,就很难了;而成一个完整系列的STM32神舟系列是值考虑和选择的,因为该系列包含了103RBT,VCT,VET,ZET,以及107VCT多个系列的开发板,无论你先学难,再拖展知识面,还是怎么样都好,绝对不怕资料少!没资料!!!而且各个系列之间还可以相互借鉴,相互依存,各个设计的高手非常多,大家一起相互交流,产生更多更新碰撞和资料。
特点4:硬件资料丰富。硬件资源以及相关资料都比同类开发板要多很多,因为该系列是一个组织在维护和发展,并不是单独的个人爱好所设计的板子,这个组织走在最前沿,不断收集行业内的知识,在神舟系列上进行验证和实现,所以资料也会越来越多。
特点5:板子的网络接口特别加强。许多STM32开发板没有考虑到网口这块以及无线2.4G(WIFI)和315M通信的例程,随着嵌入式设备在网络方面日益普及,以太网以及无线网都是嵌入式设备中必不可少的一个环节,就算有的嵌入式设备不需要网口,但是做为提供开发板的设计,不可不考虑加强网口这块的例程,代码,讲解,为各个开发爱好者做一个提前准备和设计,而这些接口神舟系列有已经直接运行的代码以及详细的讲解,大家获得相关资料,相互参考一下。
STM32神舟III号光盘资料下载地址:

STM32神舟III号文档 下载地址:(400页)  
在线文档: 
STM32神舟IV号光盘资料(上) 下载地址:
  
STM32神舟IV号光盘资料(下) 下载地址:
  
STM32神舟IV号文档 下载地址:(700多页)  
在线文档: 
JLINK-V8光盘资料 下载地址:

JLINK-V8固件烧录文件和指导 下载地址:

 
问题3:为什么是STM32呢?为什么不是ARM9,ARM11呢?
答:这里有个误区,很多同学如果就仅仅希望入门嵌入式,那就尽量不要选择ARM9和ARM11,为什么呢?因为诱惑太多了,因为你一旦选择ARM9或ARM11,那么这个平台就仅仅linux和wince等操作系统内核,驱动,应用,各种协议,硬件原理图,等都有够学一年半载了,没这点时间,你无法完全掌握,所以并不适合入门,周期太长,难度相对来说较大。
        入门最好选择主频低一点的处理器,一切都是先掌握好原理,弄明白,弄透彻了,一切就都好办!所以单片机中,STM32是目前最最主流的芯片,加上目前STM32的资料非常的多,所以,最好还是推荐STM32的开发板做为入门级的板子,学会之后,即可自己独立开发出各种产品,STM32官方提供的开源代码库也是非常好用,将底层的各种汇编,管脚定义都封装成了各个功能函数,开发起来非常方便,快捷!

  
2楼:zhixin888 2011年6月11日15:24
 [原创]
◆◆◆单片机培训视.频教程-ARM 2440-stm32视.频-dsp-CPLD-FPGA-PADS开发视.

频-嵌入式系统开发◆◆

单片机视.频教程介绍
  这是一部学单片机革命性的视.频教程,每讲3小时左右,讲座从最基本的预备

知识开始讲起,非
常详细的讲解KEIL编译器的使用,包括软件仿真,测定时间,单步
运行,全速运行,设置断点,调试,硬件仿真调试,变量观察等,
整个过程全部用单片机的C语言讲解,从C语言的第一个主函数
MAIN讲起,一步步一条条讲解每一个语法,每条指令的意思,即
使对单片机一巧不能,对C语言一无所知,通过本课程的内
容也可以让你轻松掌握51单片机的C语言编程设计,全新的讲课风
格跳过复杂的单片机内部结构知识,首先从单片机的应用讲起一步
步深入到内部结构,让学生彻底掌握其实际应用方法,把51单片机
的所有应用每个部分都讲解的非常仔细,教师在教室前面用电脑一
条一条写程序,旁边单片机实验板一个实验一个的演示,
给学员解释每条指令的意思及原理,通过十天的时间让学生完全掌
握单片机的C语言编程。全程的屏幕,声音,用屏幕录像,实验板
现象用摄像头拍摄,这部教程算是国内首个如此创新的以教师亲自
实践为主,学员现场写程序,直接下载到实验板看现象,讲单片机
的视.频教程,只要你认真看,认真听,保证很快让你学会单片机
------------------------------------------------------
目录如下: 
 一 ,预备知识
点亮一个发光管  单片机能做什么,基本电子知识,C51知识简介,点亮
一个发光管,如何申请免费芯片样品。
 二,流水灯设计蜂鸣器发声  
简单延时程序、子程序调用、带参数子程序设计、流
水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继
电器,集电极开路的概念及应用
 三,数码管显示的原理、
数码管的静态显示共阳、共阴数码管显示原理、定时器工作方式介绍、
重点讲述工作方式2、中断概念及中断函数写法、定
时器中断应用
 四,数码管的动态显示原理及应用实现   
动态扫描概念、定时器、中断加深
 五,独立键盘、矩阵键盘的检测原理及实现 
 键盘检测、消抖、键盘编码、
带返回值函数写法及应用
 六,AD、DA的工作原理及实现 
模拟电压与数字电压的关系、
为什么要使用AD及DA、ADC0804的操作方法、DAC0832的操作方法
 七,串口通讯原理及操作流程 
串口通讯工作方式、重点讲述最常用的10位数据通讯、
波特率概念及如何根据波特率计算定时器初值
 八,IIC总线AT24C02芯片工作原理,IIC总线工作原理、
目前非常通用的一种通信机制
 九,1602液晶显示原理及实现 
 最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作
 十,电路图绘制全过程 
最顶级电路板设计软件Altium Designer使用、
元件库、封装库设计、绘制原理图、错误检查、
生成PCB、手动、自动布线、送去加工 
----------------------------------------------
◆◆AVR单片机视.频内容◆◆:

第一讲:开发板和软件的操作使用
1、介绍配件。 
2、安装软件(ICC AVR 和AVR STUDIO)及其使用,括新建工程、程序下载,仿真

调试;整板测试;板上资源。
3、着重介绍一下USB接口的仿真器。
第二讲:AVR单片机的概述和C语言的基础知识
1、AVR单片机的概述包括它的优点、片上资源。
2、C语言的基础包括电平特性、2进制与16进制的表示及转换、二进制数的逻辑运

算,数据类型,运算符。
3、着重讲一下特有的BIT()操作,C中的各种语句。
4、介绍一下AVR单片机IO口的配置。
第三讲:点亮发光二极管、驱动蜂鸣器、继电器
1、首先讲解一下原理图上开关电路、复位电路、时钟电路;
2、讲解573工作原理,
3、首先点亮一个发光二极管,然后让一个二极管亮灭变化。
4、编写函数证明573的工作原理:锁住后不导通就不能再更新数据。
5、编写延时函数,软件仿真查看延时的精确时间
6  子函数的编写(分带形参和不带形参)。
7、编写流水灯函数。
8、蜂鸣器,继电器的工作原理并编写程序。
第四讲:数码管工作原理
1、共阴共阳数码管内部结构,显示原理。
2、用数字万用表标定数码管的段选和位选
3、编写程序使1个数码管上显示数字
4、编写程序在6个数码管上滚动显示数字
5、重点讲解动态显示,保持时间,以及扫描频率对闪烁和亮暗程度的影响。
第五讲:键盘检测原理(比较复杂)
1、键盘作用,检测原理,如何消抖,独立键盘检测程序编写。
2、矩阵键盘检测程序编写,涉及到返回值函数调用。
第六讲:1602液晶的使用
1、看手册,管脚、写指令和数据、时序图。
2、编写程序,显示光标
3、编写程序显示字,
4、编写程序,滚动显示字符
第七讲:中断、定时器的原理和应用(比较复杂)
1、中断的概念,AVR单片机的中断
2、定时/计数器1几种模式的寄存器配置
3、定时器1普通模式下实现秒表
4、CTC模式输出方波
5、快速PWM模式输出PWM信号
6、相位修正PWM模式输出PWM信号
第八讲:AD、DA简介及其应用
1、AD简介,AVR内部AD寄存器设置
2、编写程序控制AD读写电位器输出的模拟电压
3、SPI串行通信简介
4、DA简介,AD5300时序图
5、编写程序控制DA输出模拟电压使发光二极管亮度变化
第九讲:TWI(IIC)
1、TWI(IIC)协议简介
2、AVR单片机内部TWI寄存器简介,操作流程
3、具有IIC协议的数字电位器芯片AD5161的简介
4、编写程序用独立键盘控制AD5161输出不同的阻值
第十讲:异步串口UART的简介和程序的编写
1、UART简介
2、AVR单片机内部与UART相关的寄存器的配置
3、编写程序控制AVR单片机和电脑进行通信
4、讲解串行通信时数字和字符之间的区别
第十一讲:PS2键盘、DS1302的工作原理和程序的编写
1、AVR单片机外部中断的介绍
2、PS2键盘的工作原理
3、讲解程序,读取PS2键盘的按键值并在1602液晶上显示 
4、DS1302的工作原理
5、讲解程序,控制1302工作并在1602液晶上显示时间
--------------------------------------------------
◆◆MSP430单片机视.频◆◆:

 第一部分 硬件结构

 第一讲 概述
 第二讲 复位、中断和IO
 第三讲 异步通信接口1
 第四讲 异步通信接口2
  第五讲 定时器
 第六讲 FLASH
 第七讲 ADC12
 第二部分 软件使用
 第一讲 软件使用
 第三部分 基础程序
 第一讲 入门和低功耗
 第二讲 时钟和IO
 第三讲 比较器和定时器和ADC
 第四部分 模块程序
 第一讲 控制电路和流水灯
 第二讲 键盘
 第三讲 蜂鸣器和数码管
 第四讲 1602液晶和电平转换
 第五讲 EEPROM和18B20和DS1302
 第六讲 RS232和RS485接口
 第七讲 USB接口
第八讲 ADC和DAC 
==============================
◆◆PIC 单片机 视.频◆◆
前言:时间:10分。
内容:MPLAB、PICC软件的安装、USB下载驱动安装。
Lesson1:时间:1小时44分。
内容:PIC单片机简介、软件使用方法、新建工程、软件调试、流水灯程序实现。
Lesson2:时间:27分。
内容:数码管的静态显示与动态显示原理及实现。
Lesson3:时间:53分。
内容:PIC单片机独立键盘检测原理及实现。
Lesson4:时间:45分。
内容:PIC单片机矩阵键盘检测原理及实现。
Lesson5:时间:46分。
内容:PIC单片机控制继电器原理及实现。
Lesson6:时间:2小时20分。
内容:PIC单片机控制DS18B20数字温度传感器原理及实现。
Lesson7:时间:53分。
内容:PIC单片机定时器0的使用方法。
Lesson8:时间:34分。
内容:PIC单片机定时器1的使用方法。
Lesson9:时间:32分。
内容:PIC单片机定时器2的使用方法。
Lesson10:时间:1小时01分。
内容:PIC单片机内部模数转换器AD的使用方法。
Lesson11:时间:1小时50分。
内容:PIC单片机内部SPI通信接口的使用方法。
Lesson12:时间:2小时12分。
内容:PIC单片机内部IIC通信接口的使用方法。
Lesson13:时间:53分。
内容:PIC单片机串行口使用。
===============================
【ARM培训视.频】课程主要内容

1.概念和基本工具:
嵌入式系统基本概念、嵌入式操作系统介绍
嵌入式系统开发的过程和基本结构 
Linux基本操作命令的使用 
常用工具使用:vi /gcc/gdb等 
编写shell程序 和makefile文件结构

2.硬件结构及原理讲解:
ARM7~ARM9体系结构体系结构介绍
ARM7(9)TDMI处理器内核及指令集介绍
讲解SUMSUNG 44B0X 开发板原理图
讲解SUMSUNG 2410 开发板原理图
ARM开发工具ADS的使用

3.Linux部分:
Uclinux,mizilinux系统引导程序bootloader原理和实现过程:Uboot、vivi等
ARM系统空间划分及系统映射方法
bootloader内核下载模式实现 :tftp、Xmoden
linux操作系统原理及组成
介绍linux系统目录组织结构
linux 运行基理,系统运行过程
配置裁减编译linux内核

4.讲解Linux进程特性:
进程属性和状态转换;进程控制与调度;进程相关系统调用,构建守护进程
进程间通信: 进程通信的基本概念,管道、信号、消息队列、信号量、共享内存


网络通讯接口,socket通信编程。
串口通讯程序和编程实践
多线程程序设计

5.Linux设备驱动:
uClinux内核模块及设备驱动程序开发
介绍linux驱动程序分类和各自操作系统上下层接口
驱动开发实例:蜂鸣器驱动、按键驱动开发、串口驱动、触摸屏驱动、网络驱动

开发、USB驱动、液晶屏驱动等。
ARMlinux移植过程。
引导程序Uboot移植。
最小系统启动开发过程。
嵌入式文件系统移植:ramdisk、JFFS2、yaff

6.综合试验:
实现网络文件传输服务程序;
构建嵌入式WEB服务器;
移植mediaplay播放器
开发嵌入式视.频服务器,基于H.264协议
**************************************
另有
=====第一部分单片机相关====== 
1【单片机多媒体视.频教程】(汇编)非常经典
2【单片机入门与提高精品视.频教程】(汇编),非常适合初学者.
3【手把手教你学单片机 51单片机 C语言 视.频教程 从入门到精通 视.频】
4【数电/模电精品视.频教程】,非常适合初学者.
5【汇编语言精品视.频教程】,非常适合初学者.
6【单片机的C语言编程及电路设计培训视.频教程】 
7【标准C语言入门与提高视.频教程】非常经典
8【AVR单片机入门与提高视.频】
9【MSP430单片机经典视.频】
10【PIC单片机经典视.频】
11【电路分析应用技术视.频】
======第二部分电路设计相关=========
【protel99se+DXP/2-0-04 视.频教程+实例】
【Protel(Altium Desinger)】电路设计视.频教程
【Cadence经典视.频教程】
【Orcad经典视.频教程】
【PowerPCB入门视.频教程】
=====第三部分嵌入式硬件部分======== 
1【ARM linux培训视.频】 
2【手把手教你学ARM之LPC2103入门篇 视.频教程】 
3【ARM STM32视.频教程 +配套工程源代码】
4【(基于2440开发板的视.频教程)嵌入式Linux视.频培训视.频】
5《学ARM和学单片机一样简单》视.频】
6【ARM嵌入式LPC22-0-0视.频教学视.频教程《嵌入式系统与结构》 】
7【ARM7嵌入式S3C44B0视.频教学《嵌入式微处理器原理及应用》】 
8【ARM嵌入式视.频《嵌入式原理与应用》】
9【 台湾嵌入式培训】
10【嵌入式系统开发技术视.频】 
11【Altera FPGA 视.频教程】 
12【深入浅出玩转FPGA视.频】
13【EDA(CPLD FPGA)入门与提高视.频教程】
14【dsp入门与提高视.频教程】    
15【DSP多媒体教程】
16【vhdl应用技术视.频】
17【PLC精品视.频】                  
18【数控应用经典技术视.频】 

=====第四部分嵌入式软件部分====
1,【Windows CE入门与提高视.频教程】       2,【Vxworks应用技术】
3,【linux编程入门与提高视.频教程】  4 【linux工程师软件开发视.频】
5,【eCos、uC/OS-II开发技术】             6,【C++编程入门与提高视.频教程

】 
7,【嵌入式仿真开发】
8,【JAVA开发视.频】                       9,【.net开发视.频】
→篇幅有限,更多内容请联系
Q_Q:7-5-9-7-3-7-8-3-3
Q_Q: 9_1_0_6_8_4_9_2_8
网站
MSN:jxb200200@hotmail.com


>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:[分享]如何从零开始开发一款嵌入式产品

[下一篇主题]:一个三极管单键开关 原理图 想大家解释一下原理