范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

长文STM32嵌入式面试知识点总结

  #头条创作挑战赛#一、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详解
  四、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模块 五、I2C问题一:I2C 总线在传送数据过程中共有三种类型信号?
  (1)开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。
  (2)结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。
  (3)应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。问题二:I2C配置主机模式端口该怎么配置?
  硬件模式:复用开漏输出、既不上拉也不下拉。(快速模式:400 Kbit/s)
  软件模拟:推挽输出、配置上拉电阻。问题三:I2C仲裁机制?
  参看:S5PV210开发 – I2C 你知道多少?(三)
  I2C 仲裁机制,理解了 线"与"(Wired-AND),就一目了然了。
  简单说,它遵循"低电平优先"的原则,即谁先发送低电平谁就会掌握对总线的控制权。解答:
  参看:STM32开发 – PMIC、I2C详解
  硬件模式:  是有通信速率设置的
  /* STM32 I2C 快速模式 */
  #define I2C_Speed 400000
  /* 通信速率 */
  I2C_InitStructure.I2C_ClockSpeed = I2C_Speed;
  软件模拟:  没有设置通信速率,该怎么计算呢?
  通过I2C总线位延迟函数 i2c_Delay: static void i2c_Delay(void) { 	uint8_t i;  	/*  	 	下面的时间是通过安富莱AX-Pro逻辑分析仪测试得到的。 		CPU主频72MHz时,在内部Flash运行, MDK工程不优化 		循环次数为10时,SCL频率 = 205KHz  		循环次数为7时,SCL频率 = 347KHz, SCL高电平时间1.5us,SCL低电平时间2.87us  	 	循环次数为5时,SCL频率 = 421KHz, SCL高电平时间1.25us,SCL低电平时间2.375us               IAR工程编译效率高,不能设置为7 	*/ 	for (i = 0; i < 10; i++); }
  应用场景:PMIC、加速度计、陀螺仪 六、SPI问题一:SPI需要几根线?
  SPI 接口一般使用 4 条线通信:
  MISO 主设备数据输入,从设备数据输出。
  MOSI 主设备数据输出,从设备数据输入。
  SCLK 时钟信号,由主设备产生。
  CS 从设备片选信号,由主设备控制。问题二:SPI通信的四种模式?
  SPI 有四种工作模式,各个工作模式的不同在于 SCLK 不同, 具体工作由 CPOL,CPHA 决定。
  (1)CPOL: (Clock Polarity),时钟极性:
  SPI的CPOL,表示当SCLK空闲idle的时候,其电平的值是低电平0还是高电平1:
  CPOL=0,时钟空闲idle时候的电平是低电平,所以当SCLK有效的时候,就是高电平,就是所谓的active-high;
  CPOL=1,时钟空闲idle时候的电平是高电平,所以当SCLK有效的时候,就是低电平,就是所谓的active-low;
  (2)CPHA:(Clock Phase),时钟相位:
  相位,对应着数据采样是在第几个边沿(edge),是第一个边沿还是第二个边沿,
  0对应着第一个边沿,1对应着第二个边沿。对于:
  CPHA=0,表示第一个边沿:
  对于CPOL=0,idle时候的是低电平,第一个边沿就是从低变到高,所以是上升沿;
  对于CPOL=1,idle时候的是高电平,第一个边沿就是从高变到低,所以是下降沿;
  CPHA=1,表示第二个边沿:
  对于CPOL=0,idle时候的是低电平,第二个边沿就是从高变到低,所以是下降沿;
  对于CPOL=1,idle时候的是高电平,第一个边沿就是从低变到高,所以是上升沿;
  问题三:该如何确定使用哪种模式?
  (1)先确认从机需求的 SCLK 极性,不工作时是在低电位还是高电位,由此确认 CPOL 为 0 或 1。
  看原理图,我们设置串行同步时钟的空闲状态为高电平所以我们选择 SPI_CPOL_High。
  也就是CPOL为1
  (2)再由slave芯片 datasheet 中的时序图确认 slave 芯片是在 SCLK 的下降沿采集数据,还是在SCLK的上升沿。
  翻译一下:
  W25Q32JV通过SPI兼容总线访问,包括四个信号:串行时钟(CLK),芯片选择(/CS),串行数据输入(DI)和串行数据输出(DO)。标准SPI指令使用DI输入引脚串行地将指令、地址或数据写入CLK上升沿上的设备。DO输出引脚用于从CLK下降沿上的设备读取数据或状态。支持模式0(0,0)和3(1,1)的SPI总线操作。模式0和
  模式3关注的是当SPI总线主端处于待机状态,数据没有被传输到串行Flash时CLK信号的正常状态。对于模式0,在下降和上升时,CLK信号通常是低的
  边缘/ CS。对于模式3,在/CS的下降和上升边缘上CLK信号通常是高的。
  既然串行同步时钟的空闲状态为高电平,这里我们选择第二个跳变沿,所以选择 SPI_CPHA_2Edge。
  也就是CPHA为1
  即,我们选择的是模式3(1,1)。
  解答:
  参看:STM32开发 – W25Q32JV SPI FlASH详解
  参看:详解SPI中的极性CPOL和相位CPHA
  应用场景:SPI Flash,W25Q32 存储器容量 32Mb (4M x 8),即4M byte 七、CAN问题一:CAN总结介绍一下?
  CAN控制器根据 CAN_L 和 CAN_H上 的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者比居其一。发送方通过使总线电平发生变化,将消息发送给接收方。问题二:CAN初始化配置步骤?
  (1)配置相关引脚的复用功能,使能CAN时钟
  (2)设置CAN工作模式及波特率等(CAN初始化环回模式,波特率500Kbps )
  (3)设置滤波器问题三:CAN发送数据格式?
  CanTxMsg TxMessage;
  TxMessage.StdId=0x12; // 标准标识符
  TxMessage.ExtId=0x12; // 设置扩展标示符
  TxMessage.IDE=CAN_Id_Standard; // 标准帧
  TxMessage.RTR=CAN_RTR_Data; // 数据帧
  TxMessage.DLC=len; // 要发送的数据长度 发送8个字节
  for(i=0;iCFSR和SCB->HFSR)解答:
  参看:STM32开发 – HardFault_Handler处理
  参看:Cortex-M3和Cortex-M4 Fault异常应用之一 ----- 基础知识 二十四、TTS语音合成方法问题一:sim7600 TTS语音使用什么方法?解答:
  (1)使用unicode编码合成声音
  AT+CTTS=1,"6B228FCE4F7F75288BED97F3540862107CFB7EDF"
  内容是"欢迎使用语音合成系统",模块收发中文短信就是unicode编码,所以很容易将短信朗读出来;
  (2)直接输入文本,普通字符采用ASIIC码,汉字采用GBK编码。
  AT+CTTS=2,"欢迎使用语音合成系统" 二十五、定时器问题一:已知STM32的系统时钟为72MHz,如何设置相关寄存器,实现20ms定时?解答:
  参看:STM32开发 – Systick定时器
  通过SysTick_Config(SystemCoreClock / OS_TICKS_PER_SEC))//1ms定时器
  其中: uint32_t SystemCoreClock         = SYSCLK_FREQ_72MHz;        /*!< System Clock Frequency (Core Clock) */ #define SYSCLK_FREQ_72MHz  72000000 #define OS_TICKS_PER_SEC       1000    /* Set the number of ticks in one second
  如果需要20ms则,可以通一设置一个全局变量,然后定初值得为20,这样,每个systick中断一次,这个全局变量减1,减到0,即systick中断20次,时间为:1ms*20=20ms。从而实现20ms的定时。 二十六、优先级问题一:如果是两个优先级相同的任务怎么运行?解答:
  使获得信号量任务的优先级在使用共享资源期间暂时提升到所有任务最高优先级的高一个级别上,以使该任务不被其他任务所打断,从而能尽快地使用完共享资源并释放信号量,然后在释放信号量之后,再恢复该任务原来的优先级别。 二十七、状态机问题一:使用的什么状态机?解答:
  参看:STM32开发 – 状态机与状态切换逻辑
  有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机。
  参看:有限状态机FSM详解及其实现
  假设状态机的状态转换由下表所示:
  实现:(使用switch语句) //横着写 void event0func(void) {     switch(cur_state)     {         case State0:              action0;              cur_state = State1;         break;          case State1:              action1;              cur_state = State2;         break;          case State2:              action1;              cur_state = State0;         break;         default:break;     } }   void event1func(void) {     switch(cur_state)     {         case State0:              action4;              cur_state = State1;         break;         default:break;     } }   void event2func(void) {     switch(cur_state)     {         case State0:              action5;              cur_state = State2;         break;          case State1:              action6;              cur_state = State0;         break;         default:break;     } }二十八、器件选型问题一:STM32F407 VS STM32F103 主要功能及资源对比?解答:
  参看:STM32F407 VS STM32F103 主要功能及资源对比
  原文出处:https://juyou.blog.csdn.net/article/details/116021595

李某某引发的世界末日宣言地震海啸前小动物们会出现异常行为。而现在,男明星这种生物出现了大规模行为异常现象,难道是要世界末日了?这是李某某事件之后对两性问题的思考。为什么频频出现性丑闻?人类是否应该保留内心大型轮胎厂群起合围!抵制电商2022年以来,轮胎市场竞争愈演愈烈,一波波涨价严重挤压销售利润,加上经济下行趋势下市场消费能力减弱,电商平台低价轮胎盛行,内销替换市场更加混乱。9月20日,山东雄鹰轮胎发布抵制电燕窝为什么成为智商税重灾区?斑马消费沈庹因糖水燕窝差点被打倒的辛巴,上一次冲上热搜,还是因为举报刘畊宏卖假燕窝。没想到,一击即中。为什么燕窝行业问题这么多?这到底是一个怎样的产业?中国人将燕窝作为顶级滋补佳品养老金将开启重算补发,基数相差4500元,补发会差多少钱?国庆节前好消息,养老金将开启重算补发,部分人的养老金要增多了。养老金计发基数相差4500元,补发金额会差多少钱?国庆节就要到来,养老金有好消息!9月份以来,北京山东天津吉林广西等地9。21复盘日志市场回顾9月21日,三大指数全天分化,沪指跌破3100点后探底回升,创业板指震荡走低,上证50指数创年内新低,两市成交金额继续萎缩。盘面上,能源类板块逆势走强,油气股领涨。航运股大赚钱之神邱永汉我把交易账户资金翻了250倍中国曾有一位名副其实的赚钱之神邱永汉,他曾把投入股市的资金翻了250倍。对于现在的投资者而言,邱永汉可能比较陌生,但在上个世纪在中国台湾地区和日本家可谓家喻户晓。虽然大多数人知道他香港金融该如何助力科创企业发展?李律仁陈沛良等大咖激辩9月2122日,为进一步提升粤港澳大湾区国际竞争力,在内地与港澳金融市场合作日益紧密大背景下,凤凰湾区财经论坛2022在香港内地同步举行,论坛由凤凰卫视凤凰网联合多方发起,并获得十中国股市一年中,哪个月最容易上涨?作者皈依佛皈依法皈依僧笔者通过对上证指数数据做统计,统计时间段为自上证指数上市以来(1991年左右)至2021年5月将近30年的历史走势,数据来源于上证价格指数,通过观察统计中的数F1赛历发布!中国排第四站北京时间9月20日晚F1正式公布2023赛季赛历该赛历已经获得世界汽车运动理事会的批准2023赛季全年共24场大奖赛,比赛场数创造了历史之最。赛季揭幕战F1巴林大奖赛将于3月35日新海航重生之重2021年底,备受瞩目的海航集团破产重整案,航空主业以方大竞得海航航空板块控制权开启新篇。犹记2021年9月27日,海航航空主业召开二债会,海航管理人和联合工作组公布重整方案。航空46家退市,44家徘徊生死线,前民营500强企业从云端跌落图片来源视觉中国今年以来,A股已经有46家公司退市,相当于过去三年的总和。A股市场过去常被投资者诟病退市难,不仅资产质量较差企业长期拖累市场整体表现,个别公司乱停牌长时间停牌等问题
联想现在还有机会翻身吗?如果把现在的高管层换掉彻查,联想大概率可以生存,但不可能恢复以前的荣光了。如果不处理管理层,联想只能社死。联想不存在翻不翻身的问题。凭司马南这个投机分子就想搞翻联想?滑天下之大稽!质量为10g的子弹,如果以光速朝地球冲过来,会发生什么?如果1颗质量为10g的子弹真的能加速到光速,那么别说是地球,就连整个太阳系都会被摧毁。但是,根据爱因斯坦狭义相对论,质量为10g的子弹,并不能加速到光速。那具体是咋回事呢?今天,我领导要提拔自己,但总是说要等待机会,为什么?看了许多答案,大家作为职场人,基本看法是一致的。如果你是一个成熟的职场人,从言行和感觉上,也能判断出领导的真实意图。从常规职场关系角度看,不外乎四个原因第一,真的想提拔你,但确实需征服里如果封彪不肯跪下叫刘华强爷,刘华强会不会真的杀了封彪?这得从刘华强的性格分析!刘华强能坐上黑老大的位置,这样人的性格,天生就狠辣,做事不计后果,和刘华强有过节的封彪,在没遇见刘华强之前,那也是风云人物,横行黑道多年。封彪为了替吴天出头堪与平遥古城媲美的忻州古城是怎么消失的?忻州古城并没有完全消失,而且正在逐步恢复和完善中,我们去年三月份刚去过一次。为找寻公孙杵臼祠堂,北行八公里来到忻府区中心,以前也曾多次或坐火车或乘汽车途经这里,但入内一睹真容还属首魔兽世界中为什么亡灵种族角色只能建人类亡灵模型?难道其他的死后不能变成亡灵吗?原理上来说,魔兽世界上死亡的物种都有可能成为亡灵,但成为亡灵,未必就是被遗忘者,被遗忘者跟普通的亡灵最明显的区别就是带有意识,并有生前的思想,这也是成为可选种族的最基本条件。在上古为什么感觉李连杰之后,中国再没有出现超越他的武打演员?并不是武打演员一代不如一代,现在好的武打演员有很多,只不过李连杰真的是其中佼佼者,他的成就很难被人超越。李连杰的出现与成功,与时代背景扎实的武术基础准确的角色定位超高的颜值和深厚的你如何评价相声演员姜昆?姜昆在八九十年代和李文华唐杰忠搭档,也出过一些针砭时弊的相声,尤其在春晚上,在那个娱乐匮乏的年代得到了群众的认同,也给大家带来了笑声,功不可没。后来他的相声风格转向歌颂型,再加上功山东鲁能控球率并不高,却可以取得好成绩的原因是什么?这就是主教练李霄鹏的聪明之处。很多外籍教练在中国闯荡失败,就是因为太固执,技战术方面总是想要复制欧洲足坛的高水平传接球配合,希望打出流畅美丽的足球,然而却因为中国本土球员水平和意识山东男篮教练组人员配置豪华,是否能进入前四?距离新赛季CBA第二阶段比赛还有11天,目前各豪强球队外援基本都来到国内进行隔离,其中广东威姆斯,辽宁大外援莫兰德,浙江的拉科塞维奇,上海的冯莱,山西的西蒙斯等等,而山东两位外援哈太原最受欢迎的商场是哪个?我觉得这个问题现在可以范围大一些了,因为榆次的奥特莱斯开业了,离太原市非常近,也是太原人经常去逛的一个商场。除了奥特莱斯,今年太原还开了不少商场,比如茂业天地二期,华宇百花谷,北美