跳到主要内容位置

环境搭建及C语言基础知识

需要安装的软件:

ST-Link驱动;

串口驱动(win10自动安装、win7可能需要自行安装);

Keil MDK:www.keil.com

STM32CubeProgrammer:www.st.com


硬件:

ST-Link下载器和转接板相连,转接板和开发板之间使用适配的排线连接起来,最后再将ST-Link的

USB线接入电脑;

MicroUSB连接开发板的USB Debug处,另一端接入电脑;

12V DC电源适配器接入开发板的DC 12V处的圆孔,另一端插到220V供电处;


  • 进制转换:都先转换为二进制,再转换为其余进制。

  • 封装寄存器 STM32寄存器映射如下图,操作寄存器就是对下面的地址进行操作

    定义寄存器指针方法如下:

扩展

(1)变量与指针:

变量保存在内存里,可读可写;

程序保存在flash,只读

struct person {
int age;
char name[20];
};
volatile struct person weidongshan;
volatile char buf[100];
volatile int a;
volatile unsigned int *p;
volatile const int b = 0x12345678;
volatile char *pc;
volatile short *ps;
volatile int * pi;
volatile struct person *pt;
void main()
{
a = 123;
weidongshan.age = 40;
strcpy(weidongshan.name, "weidongshan");
p = (volatile unsigned int *)(0x40010800 + 0x0c); /* GPIOA_ODR寄存器的地址 */
*p |= 1;
}

注意:指针变量在32位地址下,都占据4个字节

ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Computing),它所用的指令比较简单,有如下特点:

① 对内存只有读、写指令

② 对于数据的运算是在CPU内部实现

③ 使用RISC指令的CPU复杂度小一点,易于设计

(2)CPU与外设

  • CPU读取数据时,并不区分内存与Flash,指令给出的地址就取读该地址;内存管理器区分这些地址,访问相应的设备。任何芯片手册的Memory map章节会说明内存管理器的地址映射

地址空间概念:ABCDE是同一个空间,假设E是SD卡,有4G的空间,所以SD卡的地址又是另一个地址空间


请点击左侧菜单(移动端为右下角)选择要查看的所有笔记吧。