1. 简介
单片机的开发,第一步就是要安装好相关的开发工具,如keill,因为这涉及到了后面代码的编译、下载、调试等
就像大多数初学者刚开始学习编程语言一样,都是从写hello world开始的,而单片机的开发我们也从点一个灯开始,这时候我们就需要先看两个文档,分别是原理图和芯片手册,然后再编写程序
2. 看图
首先看原理图,看看需要点哪个灯,这个灯接在MCU的哪个引脚上。
如下图,我们需要点这个灯,这个灯接了一个3.3v,用我们以前学习过的知识,就可以知道把下图STATE_LED1拉低,这样这个发光二极管LED3就会发光。
我们再搜索一下,可以看见这个STATE_LED1是连在MCU的PC13引脚上的
此时我们知道了,我们需要控制MCU把这个PC13引脚拉低,打开芯片数据手册看看这个引脚是做什么功能来的,因为有些引脚是特殊功能引脚或者复用引脚,我们只需要把它设置成普通的IO脚就可以了,看手册是它就是普通的IO引脚
往下再看看架构图
看看相关存储器的映射图
了解完这些,我们就差不多可以开始写代码了
3. 编程
3.1 开启时钟
我们继续接着看芯片的数据手册,看到APB2寄存器的设置定义,然后把IOPC的使能打上,设置为1
3.2 设置引脚模式
接着我们需要把这个GPIOC的13引脚(PC13)设置为推挽输出模式
3.3 设置输出寄存器的高低电平
最后我们把这个GPIOC 13设置成低电平,这样led灯就可以亮了
3.4 编写代码
如上图,我们知道了相关寄存器的定义,也知道了需要把相关寄存器设置成什么样的值,这时我们就可以通过直接对其寄存器地址编程,不懂了可以去了解一下C语言的指针相关知识
int main(void)
{
//开启时钟,由映射图和相关寄存器说明可以知道GPIO时钟控制使能
*(unsigned int *) (0x40021000 + 0x18