STM32单片机的启动模式 三种BOOT模式介绍


通过把BOOT0和BOOT1连接在高电平或低电平可以设置STM32怎么启动。
通过把BOOT0和BOOT1连接在高电平或低电平可以设置STM32怎么启动。
一、简述
记--通过代码方式实现软件延时(不精确延时)。
二、指令周期
单片机需要一个时钟信号送给内部各个电路,才能使它们有节拍地协同工作。时钟信号的频率是由外部震荡电路的晶振频率决定的。
外接晶振的频率 = 时钟信号的频率 = 工作频率。(如24MHz,12MHz,11.0592MHz)
震荡周期:为单片机提供时钟脉冲的振荡源的周期。
震荡周期 = 1/晶振频率 (如晶振频率是12MHz时,振荡周期 = 1/12MHz = (1/12)us)
机器周期:51系列单片机的一个机器周期由12个震荡周期组成。
机器周期 = 12 * 振荡周期
(如晶振频率是24MHz时,振荡周期 = 1/24MHz = (1/24)us,机器周期 = 12*(1/24)us = 0.5us)
(如晶振频率是12MHz时,振荡周期 = 1/12MHz = (1/12)us,机器周期 = 12*(1/12)us = 1us)
对于初学者而言,对单片机的内存分配往往最让人头疼,很多人学了单片机几年 都不知道单片机内部的内存使用情况是如何分配的。要了解 ROM(flash)、RAM(sram)启动,首先 需要对 链接器 Linker 如何分配内存有一定的了解。
这里使用基于Labview设计的程序作为上位机,基于Keil设计单片机程序作下位机,两者实现串口通信。
GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32和STM32有很多地方都是一样的。
DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
今天就和大家聊一聊i.MX RT1170的GPIO外设的使用,在两个核下有什么异同以及注意点。
GD32 是国产单片机,据说开发人员来自ST公司,GD32 也是以 STM32 作为模板做出来的。所以 GD32 和 STM32 有很多地方都是一样的,不过 GD32 毕竟是不同的产品,不可能所有东西都沿用 STM32,有些自主开发的东西还是有区别的。
本篇将是系列文章的最后一篇,在MCU上进行实际的部署。
说在前面
码代码的应该学数据结构都学过队列。环形队列是队列的一种特殊形式,应用挺广泛的。因为有太多文章关于这方面的内容,理论知识可以看别人的,下面写得挺好的:STM32进阶之串口环形缓冲区实现。
代码实现
环形队列数据结构
typedef struct ringBuff{ unsigned int in; //写入的位置 unsigned int out; //读出的位置 unsigned char buffer[RING_BUFF_SIZE]; //数据域 }stRingBuff;
写一字节数据到队列