八十三,STM32积累一

一:代码容量

Code :是程序中代码所占字节大小

RO-data :程序中所定义的指令和常量大小

RW-data :程序中已初始化的变量大小

ZI-Data :程序中未初始化的变量大小

ROM(Flash) size = Code+RO-data+RW-data;

RAM size = RW-data+ZI-data

二,单片机时间

72MHz: 1秒钟 1/(每次的时间)= 1/(1/72MHz) = 72 000 000次。

系统时钟频率为72MHz,那么每个时钟周期的时间为1/72MHz = 13.89ns (秒,毫秒,微秒,纳秒)

需要的时钟周期数 = 需要的时间 / 每个时钟周期的时间

需要的时钟周期数 = 11.111us / 13.89ns 约等于 800(799.928)

Period = 800 – 1; // 自动重装寄存器的值

Prescaler = 0; // 预分频器的值

配置为11.111us的定时器中断

补充

系统时钟频率为48MHz,那么每个时钟周期的时间为1/48MHz = 20ns

系统时钟频率为168MHz,那么每个时钟周期的时间为1/168MHz = 5.95ns

三,stm32自定义io别名怎么建立成数组

首先,我们定义一个结构体,用于描述GPIO:

typedef struct

{

GPIO_TypeDef* GPIOx; // GPIO端口

uint16_t GPIO_Pin; // GPIO引脚

} MyGPIO_TypeDef;

然后,我们可以定义一个结构体数组,用于存储我们的GPIO别名:

MyGPIO_TypeDef GPIO_MAP[] =

{

{GPIOA, GPIO_Pin_0},

{GPIOA, GPIO_Pin_1},

{GPIOB, GPIO_Pin_0},

{GPIOB, GPIO_Pin_1},

// 更多的GPIO别名…

};

在这个例子中,GPIO_MAP[0]就是GPIOA的第0引脚,GPIO_MAP[1]就是GPIOA的第1引脚,

当我们需要使用这些GPIO时,可以直接通过数组索引来访问:

GPIO_SetBits(GPIO_MAP[i].GPIOx, GPIO_MAP[i].GPIO_Pin);

这样,我们就可以通过数组索引来方便地控制GPIO了。