一、STM32F1和F4的区别?

解答:

参看:STM32开发 – STM32初识内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核;
主频不同:F1主频72MHz,F4主频168MHz;
浮点运算:F1无浮点运算单位,F4有;
功能性能:F4外设比F1丰富且功能更强大,比如GPIO翻转速率、上下拉电阻配置、ADC精度等;
内存大小:F1内部SRAM最大64K,F4有192K(112+64+16)。

二、介绍以下STM32启动过程?

解答:

参看:STM32开发 – 启动流程通过Boot引脚设定,寻找初始地址
初始化栈指针 __initial_sp
指向复位程序 Reset_Hander
设置异常中断 HardFault_Handler
设置系统时钟 SystemInit
调用C库函数 _main

三、介绍以下GPIO?

解答:

参看:STM32开发 – GPIO详解GPIO 8种工作模式(gpio_init.GPIO_Mode):(1) GPIO_Mode_AIN 模拟输入
(2) GPIO_Mode_IN_FLOATING 浮空输入
(3) GPIO_Mode_IPD 下拉输入
(4) GPIO_Mode_IPU 上拉输入
(5) GPIO_Mode_Out_OD 开漏输出
(6) GPIO_Mode_Out_PP 推挽输出
(7) GPIO_Mode_AF_OD 复用开漏输出
(8) GPIO_Mode_AF_PP 复用推挽输出

APB2负责 AD,I/O,高级TIM,串口1。APB1负责 DA,USB,SPI,I2C,CAN,串口2345,普通TIM,PWR

GPIO框图剖析:参看:STM32-GPIO详解

STM32嵌入式面试知识点总结_串口


四、UART

  • 问题一:串行通信方式介绍?
    同步通信:I2C 半双工,SPI 全双工异步通信:RS485 半双工、RS232 全双工
  • 问题二:串口配置?
    串口设置的一般步骤可以总结为如下几个步骤:(1)串口时钟使能,GPIO时钟使能(2)串口复位(3)GPIO端口模式设置TX的GPIO工作模式为:GPIO_Mode_AF_PP;//复用推挽输出RX的GPIO工作模式为:GPIO_Mode_IN_FLOATING;//浮空输入(4)串口参数初始化主要包含:波特率设置(115200)、8个数据位、1个停止位、无奇偶校验位、无硬件数据流控制、收发模式。(5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)(6)使能串口(7)编写中断处理函数
  • 问题三:USART主要特点?
    (1)全双工操作(相互独立的接收数据和发送数据);(2)同步操作时,可主机时钟同步,也可从机时钟同步;(3)独立的高精度波特率发生器,不占用定时/计数器;(4)支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢结构;(5)由硬件支持的奇偶校验位发生和检验;(6)数据溢出检测;(7)帧错误检测;(8)包括错误起始位的检测噪声滤波器和数字低通滤波器;(9)三个完全独立的中断,TX发送完成、TX发送数据寄存器空、RX接收完成;(10)支持多机通信模式;(11)支持倍速异步通信模式。

解答:

参看:STM32开发 – 串口详解应用场景:GPS、蓝牙、4G模块