前言
今天的课程基础主要讲了单片机最小系统的构成,内部flash的构成,如何下载st官方资料,如何构建一个项目。
提高部分讲解了程序的需求分析,程序流程图,裸机/RTOS的软件框架。
基础部分
基础部分:
如何上手一款单片机?
查阅官方的数据手册和参考手册
STM32F103C8T6最小系统:最少的电路组成单片机可以工作的系统
电源电路、时钟电路、复位电路、调试下载电路、启动选择电路
存储结构:0x0000 0000 – 0xFFFF FFFF 一共4GB
0x0800 0000 – 0x0801 FFFF是flash,存放下载的代码
0x2000 0000是SRAM内存,代码运行过程中所产生的临时数据变量
0x4000 0000 是外设
0xE000 0000 – 0xE010 0000是M3内部外设寄存器地址,比如中断向量表,系统的滴答时钟等
对单片机控制的本质:对寄存器的控制,通过控制寄存器,从而控制各种外设
控制寄存器的四种方式
- 使用汇编操作寄存器
- 使用C语言操作寄存器
- 使用标准库开发
- 使用HAL库开发
通过位运算配置GPIO:
GPIO输出高电平:a|=1<<bit
GPIO输出低电平:a&=~(1<<bit)
获取GPIO当前的状态: if(a&1<<bit)
提高部分
项目开发前的需求分析
分析完需求后,对程序流进行梳理,形成程序流程图。
为什么要画程序流程图?
- 让自己对工程的信号流、数据流、控制流有把控,之后写代码会更有条理。
- 正规公司需要工程师写程序说明或报告,程序流程图必不可少。