杭州专业建设网站哪里好,安阳县事业单位招聘,上海高端网站建设服务公司,成都室内设计公司排名前十STM32的编程模型
假如使用C语言的方式写了一段程序#xff0c;这段程序首先会被烧录到芯片当中#xff08;Flash存储器中#xff09;#xff0c;Flash存储器中的程序会逐条的进入CPU里面去执行。
CPU相当于人的一个大脑#xff0c;虽然能执行运算和执行指令#xff0c;…STM32的编程模型
假如使用C语言的方式写了一段程序这段程序首先会被烧录到芯片当中Flash存储器中Flash存储器中的程序会逐条的进入CPU里面去执行。
CPU相当于人的一个大脑虽然能执行运算和执行指令但不能去做一些具体的任务比如大脑想看到某样东西它需要眼睛想要说话就需要嘴巴。对于CPU同理想要完成某个具体的功能就需要借助CPU周围的一些模块模块负责执行一些具体的任务。
故程序的目的就是控制CPU周围的模块去执行一些具体的功能。 寄存器和寄存器编程
寄存器由若干个比特位组成读写这些比特位可以控制这些模块。CPU通过控制寄存器来操控这些模块从而来实现具体功能。
想对芯片周围的这些模块进行编程使用模块就需要操作模块的寄存器组直接去读写操作寄存器的代码为寄存器编程。 假设CPU周围有一个模块叫做GPIO可以管理芯片周围的16个引脚。其模块内部有寄存器组包含两个寄存器输入寄存器IDR和输出寄存器ODR均有16个比特位对应GPIO所管理的16个引脚。则可对其进行寄存器编程 int main()
{GPIO-ODR 0xFFFF; //所以引脚输出高电平GPIO-ODR 0x0000; //所有引脚输出低电平GPIO-ODR | 0x01; //1号引脚输出高电平GPIO-ODR ~0x01; //1号引脚输出低电平
} 这种寄存器的编程方式比较繁琐。 库函数编程
将操作寄存器的代码包装成一条条函数在实际编程中直接调用这些包装好的函数来控制寄存器。
标准库由ST官方提供的库对寄存器的简单封装。
如下所示为库函数编程
void GPIO_Init(...);
void GPIO_Write(...);
void GPIO_WriteBit(...);
void GPIO_SetBits(...);
void GPIO_ResetBits(...);int main()
{GPIO_Write(...,0xFFFF); //所以引脚输出高电平GPIO_Write(...,0x0000); //所以引脚输出低电平GPIO_WriteBit(...,1,1); //1号引脚输出高电平GPIO_WriteBit(...,1,0); //1号引脚输出低电平
} 安装DFP
即安装器件支持包因为现在的ARM的芯片型号非常多升级换代速度也快新型号的芯片也是不断推出而Keil5软件不能出一款芯片就升级一下软件而且同时支持所有型号的芯片。
Keil5之后芯片的器件支持包就被独立出来了开发哪种芯片安装对应支持包就行了。若没有安装支持包在新建工程时是不会出现相应的器件型号。 安装ARMCC编译器
虽然Keil5是集成开发环境具备编译器的功能。但我们的标准库是一个比较古老的库对于新版的Keil5软件来说不支持标准库的编译需要安装一个旧版的编译器即ARMCC编译器来让我们的标准库能够在Keil5软件上跑起来。
可在软件中查看是否安装ARMCC 安装STLINK驱动
由ST公司设计的一种硬件的调试器负责将我们的电脑与嵌入式硬件连接起来调试器在中间负责通信这样我们可以通过电脑去控制单片机运行从而查看程序是否达标或存在BUG。
安装驱动一般流程
先将STLINK插在电脑上然后在设备管理器中可以看到STLINK在其他设备的列表上。如果其图标带有感叹号就说明电脑上目前没有安装STLINK驱动反之则已经安装过STLINK驱动。 STLINK驱动如下所示 安装成功后可在通用串行总线设备里看到STM32 STLINK。