下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统设计学习通超星期末考试章节答案2024年Corte-M3/M4处理器复位后执行的第一项操作是什么?第二项操作是什么?
答案:第一项操作:从0x00000000地址处将存储的栈顶指针(一个地址)取出来放在MSP中。第二项操作:从0x00000004地址处将存储的复位异常应用程序入口地址取出来放在PC中。处理器中的程序从此处开始执行。什么是大端模式和小端模式?
答案:在小端格式中,一个字的中低地址的字节为该字的低有效字节,高地址的字节为高有效字节。存储器系统地址0的字节与数据线7-0相连。在大端格式中,一个字的中低地址的字节为该字的高有效字节,而高地址的字节为低有效字节。存储器系统地址0的字节与数据线31-24相连。试说明异常响应过程。
答案:进入异常/中断步骤:(1)处理器在当前堆栈上把程序状态寄存器、程序计数寄存器、链接寄存器、R12、R3~R0八个寄存器自动依次入栈。(2)读取向量表(如果是复位中断,则更新堆栈指针的值)。(3)根据向量表更新程序计数寄存器的值。(4)加载新程序计数寄存器处的指令(步骤(2)~步骤(4)与步骤(1)同时进行)。(5)更新链接寄存器为EXC_RETURN(EXC_RETURN表示退出异常后返回的模式及使用的堆栈)。退出异常步骤:(1)根据EXC_RETURN指示的堆栈,弹出进入中断时被压栈的八个寄存器。(2)从刚出栈的IPSR寄存器[8:0]位检测恢复到哪个异常(此时为嵌套中断中),若为0则恢复到线程模式。(3)根据EXC_RETURN,选择使用相应堆栈指针。编写C语言,将存储空间0x40000004单元的3位置位(普通方式和位带操作)。
答案:普通方式:*((volatileunsignedint*)(0x40000004))
|=
(0x1<<3);位带操作:*((volatileunsignedint*)(0x42000000+4*32+3*4)=
0x1;嵌入式系统处理器有哪几种?如何选择?
答案:嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。分为以下几种:(1)嵌入式微处理器一般用于中高端嵌入式系统应用场景,可跑中大型操作系统。(2)嵌入式微控制器一般用于低端嵌入式系统应用场景,可跑小型操作系统或裸机运行程序。(3)嵌入式DSP一般用于数据运算集中的应用场景。(4)嵌入式SoC在此主要指基于FPGA的SOPC系统,处理器和FPGA系统混合集成。一般应用于通信、数据中心等对数据处理实时性有要求的场景。
嵌入式系统处理器的选择主要根据应用场景决定。嵌入式实时操作系统定义是什么?典型的嵌入式实时操作系统有哪几种?
答案:嵌入式实时操作系统主要面向控制、通信等领域。实时操作系统除了要满足应用的功能需求,还要满足应用提出的实时性要求,属于抢占式操作系统。嵌入式实时操作系统能及时响应外部事件的请求,并以足够快的速度予以处理,其处理结果能在规定的时间内控制、监控生产过程或对处理系统做出快速响应,并控制所有任务协调、一致地运行。典型的嵌入式实时操作系统有VxWork、mCOS-Ⅲ、QNX、FreeRTOS、eCos、RTX及RT-Thread等。试说明Corte-M3/M4处理器两种模式和两种特权的使用。
答案:两种模式:线程模式和处理器模式。这两种模式可以区别普通应用程序的代码和异常服务例程的代码(包括中断服务例程的代码)。两种特权:特权级和用户级。提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至恶意地执行涉及要害的操作。处理器支持两种特权级,这也是一个基本的安全模型。什么是CISC、RISC指令系统?二者有什么区别?
答案:CISC是复杂指令集,指令特征为使用微代码,计算机性能的提高往往是通过增加硬件的复杂性来获得的。RISC是精简指令集,指令特征:RISC包含简单、基本的指令,这些简单、基本的指令可以组合成复杂指令。(1)CISC的指令能力强,单多数指令使用率低却增加了CPU的复杂度,指令是可变长格式;RISC的指令大部分为单周期指令,指令长度固定,操作寄存器,只有Load/Store操作内存(2)CISC支持多种寻址方式;RISC支持方式少(3)CISC通过微程序控制技术实现;RISC增加了通用寄存器,硬布线逻辑控制为主,是和采用流水线(4)CISC的研制周期长(5)RISC优化编译,有效支持高级语言大部分嵌入式系统使用的处理器使用的都是RISC指令集。例如:ARM、MIPS处理器MOVR0,#0xFF000
ADD
R1,R0,#0x7f
执行后R1=_______
答案:0xFF07FMOVR1,#0x123450MOV
R0,R1,LSL#4
执行后R0=__________
答案:0x1234500MOVR1,#0x123450LDRR0,[R1,#8]
执行后R1=__________
答案:0x123450MOVR1,#0x123450LDRR0,[R1,#8]!
执行后R1=__________
答案:0x123458MOVR0,#0x12345678ANDR0,#0x0F执行后R0=__________
答案:0x08;
8;
0x00000008MOVR4,#5MOVR5,#6MULR3,R4,R5执行后R3=_______
答案:30MOVR0,#5MOVR1,#3CMPR0,R1
ADDHIR0,R0,#1
ADDLSR1,R1,#1
执行后R0=_______,R1=___________
答案:6;3MOVR0,#0x1234567FBICR0,R0,#0x01执行后R0=____
答案:0x1234567EMOVR0,#0x12345678ORRR0,#0x0F执行后R0=__________
答案:0x1234567FMVN
R0,#1
执行后R0=___________
答案:0xFFFFFFFE编写一段程序,查找存储器从0x400000开始的200个字中为0的数目,将其结果存到0x400190中。
答案:MOVR0,#0x400000
MOVR1,#0
MOVR7,#200
LP
LDRR2,[R0],#4
CMPR2,#0
BNENEXT
ADDR1,R1,#1NEXT
SUBSR7,R7,#1
BNELP
LDRR0,=0x400190
STR
R1,[R0]
LOOPB
LOOP编写程序将R1的高16位数据转移到R0的低16位中,保存到地址0x40003000单元内
答案:A1
EQU
0x40003000
AREAByteCopY,CODE,READONLY
ENTRY
START
MOVR0,R1,LSR#16
LDRR1,=A1
STRR0,[R1]
END给每条汇编加注释,并说明整体程序功能。
AREAExample,CODE,READONLY
ENTRY
;____1______Start
MOV
R0,#20
MOV
R1,#10
BL
ADD_SUM
;____2_______
B
OVER
ADD_SUM
;_____3_______
ADD
R0,R0,R1
MOV
PC,LR
;_____4________OVER
END该程序作用:_______________________
答案:程序入口调用子程序ADD_SUM定义子程序ADD_SUMPC=LR子程序ADD_SUM实现R0=R0+R1,主程序调用子程序,实现20+10编写一个C语言减法函数sub(inta,intb);再编写一段汇编程序,调用sub函数。
答案:EXPORTasmfile
;可被调用的汇编段AREAasmfile,CODE,READONLY
;声明汇编程序段IMPORTsub
;声明调用C语言的cFun函数ENTRY
;主程序起始入口
MOVR0,#33
;将11放入R0
MOVR1,#22
;将22放入R1
BLsub
;调用C语言子函数END/*C语言函数,被汇编语言调用*/intsub(inta,intb)
//声明一个函数{
returna-b;
//返回a-b的值}阅读下列程序,给语句加注释,并分析整体程序功能COUNTEQU0X30003100
AREAEXAMPLE1,CODE,READONLY
;____1_____ENTRYCODE32
;___2____START
LDRR1,=COUNT
;_____3______
LDRR0,[R1]
;____4______
ADDR0,R0,#1
;____5_______
CMPR0,#10
MOVGER0,#0
STRR0,[R1]
;_____6______LOOP
BLOOP
;_____7____
END该程序完成的功能:___________________________
答案:定义代码段32位ARMCodeR1=COUNT加载存储器,R0=存储器0x30003100地址处的值R0=R0+1把R0的值写入存储器0x30003100出跳到LOOP存储器地址0x30003100处的4字节数据的值,先加1,然后判断如果大于等于10,就修改为0.如何以本书上定义的寄存器封装将GPIOH端口(包括16引脚,编号为0~15)的0号、2号、
3号、6号、7号引脚设置为低电平,把1号、8号、9号引脚设置为高电平?请使用两条C指令完成_______________________。
答案:GPIOH->ODR
&=
~(1<<7|1<<6|1<<3|1<<2|1STM32F29IGT6微控制器的引脚有哪些类型_______________________
答案:引脚类型主要有电源引脚晶振I/O引脚,下载I/O引脚,BOOTI/O引脚,复位I/O引脚及GPIO引脚等写出STM32F429IGT6微控制器内部Flash的地址范围__________________
答案:0x08000000-0x081FFFFFSTM32F429IGT6微控制器命名中的32、F、429、I、G、T、6的含义分别是___________?
答案:32表示32位的微控制器F表示基础型429表示高性能,带DSP、FPU、LTDC控制器和FMCI表示176引脚G表示1024KBT表示QFP封装,这是最常用的封装6表示温度等级为A:-40~85℃STM32F429IGT6微控制器内部集成的程序存储器空间大小为______,SRAM的空间大小为_____。
答案:1MB;324KB假设一个寄存器的地址为0x40000400,怎么将数据0x55aa写入这一寄存器_______________________
答案:*((volatileunsignedint*volatileuint32_tTimingDelay;该语句中volatile的作用是什么?
答案:volatile防止变量TimingDelay在使用过程中被优化。请写出复位异常向量、SVC异常向量和SysTick向量地址。
答案:复位异常向量地址:0x00000004SVC异常向量地址:0x0000002CSysTick向量地址:0x0000003C如何配置1ms的SysTick系统定时函数?
答案:if(SysTick_Config(SystemCoreClock/1000000)){/*SystemCoreClock/1000000超出计数最大值时报错,程序陷入空循环*/while(1);}尝试分析一下STM32F4系列微控制器从复位到main()启动过程__________________________
答案:(1)
从存储空间0x00000000处去除栈顶指针到MSP。(2)
从存储空间0x00000004出读取复位终端服务程序入口地址到PC。(3)
执行SystemInit函数,初始化系统时钟和外部存储器接口。(4)
执行__main函数,完成堆栈区域初始化。(5)
点转到main(/star3/origin/4c80b76674701bc1239c27fafff9e115.png
答案:#defineKEY_ON
1#defineKEY_OFF
0(1)intmain(void){
delay_init(168);
//初始化延时函数
LED_GPIO_Config();
Key_GPIO_Config();
while(1)
{
if(Key_Scan(GPIOE,GPIO_Pin_5)==KEY_ON
)
{
GPIO_ToggleBits(GPIOB,GPIO_Pin_2);
}
}}(2)voidKey_GPIO_Config(void){
GPIO_InitTypeDefGPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;
GPIO_Init(GPIOE,&GPIO_InitStructure);
}voidLED_GPIO_Config(void){
GPIO_InitTypeDefGPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
}(3)uint8_tKey_Scan(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin){
if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON)
{
delay_ms(100);//去抖动
if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON)
return
KEY_ON;
else
returnKEY_OFF;
}
else
returnKEY_OFF;}列举GPIO的工作模式。
答案:输入:(1)输入浮空模式。(2)输入上拉模式。(3)输入下拉模式。模拟:(4)模拟功能模式。输出:(5)具有上拉/下拉功能的开漏输出模式。(6)具有上拉/下拉功能的推挽输出模式。复用:(7)具有上拉/下拉功能的复用功能推挽模式。(8)具有上拉/下拉功能的复用功能开漏模式。编写程序,将GPIOD的1号、3号、5号、7号、9号引脚配置为推挽输出模式,速度为50MHz,将0、2号、4号、6号、8号引脚配置为上拉输入模式。
答案:GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_Init(GPIOD,&GPIO_InitStructure);在stm32f429的库函数中,初始化GPIO功能,使用的库函数是________________
答案:voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct在stm32f429的库函数中,使能GPIOA时钟,使用的库函数是______________________
答案:RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE在stm32f429的库函数中,设定某些特定GPIO引脚输出状态,使用的库函数是______________
答案:voidGPIO_SetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_PinSTM32F429系列微控制器每个GPIO端口有____个引脚。
答案:16控制引脚输出电平时,需要操作_____寄存器;获取引脚状态需要操作_____寄存器。
答案:ODR;IDR编写NVIC中断初始化程序实现如下功能。(1)设置中断优先级组为2组。(2)设置外部中断2的抢占优先级为0,响应优先级为2。(3)设置定时器2中断的抢占优先级为2,响应优先级为1。(4)设置USART2的中断抢占优先级为3,响应优先级为3。
答案:voidNVIC_Configuration(void){NVIC_InitTypeDefNVIC_InitStructure;
//声明NVIC初始化临时变量/*将NVIC中断优先级组设置为2组*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//2位抢占优先级可以是0~3
//2位响应优先级可以是0~3
/*设置中断源为EXTI2_IRQn*/NVIC_InitStructure.NVIC_IRQChannel=EXTI2_IRQn;
/*设置抢先优占级*/NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
/*设置响应优先级*/NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;
/*使能这一中断*/NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
/*完成以上中断的初始化功能*/
NVIC_Init(&NVIC_InitStructure);
/*设置中断源为TIM2_IRQn*/NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;
/*设置抢占优先级*/NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;
/*设置响应优先级*/NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
/*使能这一中断*/NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
/*完成以上中断的初始化功能*/NVIC_Init(&NVIC_InitStructure);
/*设置中断源为USART2_IRQn*/NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn;
/*设置抢占优先级*/NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;
/*设置响应优先级*/NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;
/*使能这一中断*/NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
/*完成以上中断的初始化功能*/NVIC_Init(&NVIC_InitStructure);}//初始化函数结束当中断优先级组设置为2组时,抢占优先级和响应优先级可以分别设置为哪些优先级?
答案:抢占优先级:0~3响应优先级:0~3voidNVIC_Init(NVIC_InitTypeDef*NVIC_InitStruct)函数的参数是个NVIC_InitTypeDef结构体指针,这个结构体维护的成员分别是________、________、__
______、________。
答案:NVIC_IRQChannel;NVIC_IRQChannelPreemptionPriority;NVIC_IRQChannelSubPriority;NVIC_IRQChannelCmd中断优先级编号越小,则其优先级越
。
答案:高假定设置中断优先级组为1,然后设置:中断3(RTC中断)的抢占优先级为1,响应优先级为1;中断6(外部中断0)的抢占优先级为3,响应优先级为0;中断7(外部中断1)的抢占优先级为1,响应优先级为6。那么,这3个中断的优先级顺序为(由高到底):____________
答案:中断3、中断7、中断6voidNVIC_PriorityGroupConfig(uint32_tNVIC_PriorityGroup)函数用于设置
______
答案:中断优先级组中断抢占优先级高的是否可以抢占优先级低的中断流程?_____
答案:可以/star3/origin/aab622c63e8e2309738c589d075534bb.png
答案:voidEXTI0_Init(){GPIO_InitTypeDefGPIO_InitStructure;EXTI_InitTypeDefEXTI_InitStructure;NVIC_InitTypeDefNVIC_InitStructure;
//-------------------第1步--------------------/*开启按键GPIO口的时钟*/RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO,ENABLE);
/*使能SYSCFG时钟,使用GPIO外部中断时必须使能SYSCFG时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
//-------------------第2步--------------------/*选择按键的引脚*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;/*设置引脚为输入模式*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;
/*设置引脚不上拉也不下拉*/GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;/*使用上面的结构体初始化按键*/GPIO_Init(GPIOE,&GPIO_InitStructure);
//-------------------第3步--------------------/*连接EXTI中断源到GPIOE5引脚*/SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE,EXTI_PinSource5);
//-------------------第4步--------------------/*选择EXTI中断源*/EXTI_InitStructure.EXTI_Line=EXTI_Line5;/*中断模式*/EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;/*上降沿触发*/EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;
/*使能中断/事件线*/EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);
//-------------------第5步--------------------/*配置NVIC*//*配置NVIC为优先级组1,整个程序处于同一组*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
/*配置中断源:按键1*/NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;/*配置抢占优先级:1*/NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;/*配置子优先级:1*/NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;/*使能中断通道*/NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);}voidEXTI9_5_IRQHandler(void){
//确保是否产生了EXTILine中断
if(EXTI_GetITStatus(EXTI_Line5)!=RESET)
{
//清除中断标志位
EXTI_ClearITPendingBit(EXTI_Line5);
//LED状态转换
GPIO_ToggleBits(GPIOB,GPIO_Pin_2);
}
}函数voidEXTI_Init(EXTI_InitTypeDef*EXTI_InitStruct)有什么功能?
答案:初始化外部中断功能。初始化外部中断1:将GPIOA的1号引脚作为输入引脚,中断模式,上升沿触发,中断优先级组为3组,抢占优先级为3,响应优先级为1,并使能中断。
答案:RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;GPIO_Init(GPIOA,&GPIO_InitStructure);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource1);
EXTI_InitStructure.EXTI_Line=EXTI_Line1;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);
NVIC_InitStructure.NVIC_IRQChannel=EXTI1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);函数SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource0)有什么功能?
答案:连接GPIOA的0号引脚到EXTI0外部中断信号输入的触发信号形式可以是_1__、_2_、_3_。
答案:上升沿触发;下降沿触发;边沿触发外部中断的中断0在库函数启动文件中定义的默认中断函数名是____。
答案:EXTI0_IRQHandler每个GPIO引脚都可以作为外部中断信号输入引脚,GPIO引脚编号相同的映射到同一个EXTI线,那么GPIOA的0号引脚映射到EXTI线___1_____,GPIOD的0号引脚映射到EXTI线_____2___,GPIOC的5号引脚映射到EXTI线_____3___,GPIOG的10号引脚映射到EXTI线____4____。
答案:0;0;5;10STM32F4的中断控制器支持_______个外部中断/事件
答案:23请说明SYSCLK、HCLK、PCLK1及PCLK2这4个时钟之间的关系。
答案:SYSCLK=HCLK。PCLK1及PCLK2的频率由RCC时钟配置寄存器(RCC_CFGR)的PPRE1和PPRE2两个位域决定。默认系统复位后。PCLK1=HCLK/4PCLK2=HCLK/2阐述PLL的倍频原理
答案:当锁相环处于锁定状态时,鉴相器(PD)的两输入端一定是两个频率完全一样但有一定相位差的信号。如果它们的频率不同,则在压控振荡器(VCO)的输入端一定会产生一个控制信号使压控振荡器的振荡频率发生变化,最终使鉴相器(PD)的两输入信号(一个是锁相环的输入信号Ui,一个是压控振荡器的输出信号Uo)的频率完全一样,则环路系统处于稳定状态。基于此原理,如果在VCO之后,加一个分频器(N分频),在反馈回锁相环输入端,此时输出信号即为原来的N倍。系统时钟的三个输入选择分别是_____、__、____。
答案:HSI;HSE;PLLCLKSTM32F429微控制器内部的5个时钟源:__________________________
答案:HSI、HSE、LSI、LSE、PLLCLK四个片上外设时钟使能函数分别是(只需要函数名):_____1_____,________2______,____3________,________4___________
答案:RCC_AHB1PeriphClockCmd;RCC_AHB2PeriphClockCmd;RCC_APB1PeriphClockCmd;RCC_APB2PeriphClockCmd通过外部时钟HSE25MHz,经过PLL产生系统时钟,PLL的M=25,N=180,P=2,则SYSCLK频率为____MHz
答案:90选择HSE振荡器时钟(8MHz)作为PLL时钟源,并选择PLL生成180MHz的系统时钟,系统时钟不分频产生AHB时钟HCLK=180MHz。当APB1总线4分频HCLK时钟,PCLK1=__1___MHz,当APB2总线2分频HCLK时钟,PCLK2=__2___MHz,。
答案:45;90TIM1挂载在APB2总线上,在系统时钟=180MH时,PCLK2=90MHz,TIM1的内部时钟源=PCLK2*2=180MHz。编程序,使用TIM1产生1s的定时。
答案:TIM_TimeBaseInitTypeDef
TIM_TimeBaseStructure;NVIC_InitTypeDefNVIC_InitStructure;
/*-------------------第1步--------------------*/
//开启TIM1时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
/*-------------------第2步--------------------*/
TIM_TimeBaseStructure.TIM_Period=10000-1;
TIM_TimeBaseStructure.TIM_Prescaler=18000-1;
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_RepetitionCounter=0;
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);
/*-------------------第3-1步--------------------*/
//开启定时器更新中断
TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);
//清除定时器更新中断标志位
TIM_ClearFlag(TIM1,TIM_FLAG_Update);
/*-------------------第3-2步--------------------*/
//设置中断组为0
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
//设置中断来源
NVIC_InitStructure.NVIC_IRQChannel=TIM1_UP_TIM10_IRQn;
//设置抢占优先级
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
//设置子优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
/*-------------------第4步--------------------*/
//使能定时器
TIM_Cmd(TIM1,ENABLE);什么是PWM信号?什么是占空比?
答案:PWM(PulseWidthModulation):脉冲宽度调制,简称脉宽调制。PWM信号:周期内高电平占空比可调的信号。占空比:一个周期内高电平持续时间与一个周期时间的比值。STM32F429计数寄存器是____,自动重载寄存器是___,预分频寄存器是____。
答案:TIMx_CNT;TIMx_ARR;TIMx_PSCSTM32F429定时器的计数方式有____、___、____。
答案:递增计数;递减计数;中心对齐编程序配置STM32F429微控制器的USART2为以下功能:波特率=9600bps,8位有效数据位、无奇偶校验、无硬件流控、使能接收和发送、使能接收中断。
答案:USART2
发送引脚TX:PA2USART2
接收引脚RX:PA3voidUSART_Config(void){
GPIO_InitTypeDef
GPIO_InitStructure;
USART_InitTypeDefUSART_InitStructure;
NVIC_InitTypeDef
NVIC_InitStructure;
/*-------------------第1步--------------------*/
/*使能GPIOA时钟*/
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
/*使能USART2时钟*/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
/*-------------------第2步--------------------*/
//配置串口相关复用引脚
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自然灾害风险管理培训
- 高中教师自我提升计划
- 班级特色项目的设计与实施计划
- 五年级数学(小数四则混合运算)计算题专项练习及答案汇编
- 五年级数学(小数四则混合运算)计算题专项练习及答案
- 徐州工程学院《图形设计》2022-2023学年第一学期期末试卷
- 食品饮料项目投资合作协议三篇
- 预算执行总结报告计划
- 销售管理中的时间管理技巧培训
- 工业厂房拆迁改造工程合同三篇
- 从新发展理念到新发展格局
- 饼图比例模板数据图表PPT模板
- 附件3-“三高共管六病同防”医防融合慢性病管理工作台账(参考模板)
- 钢结构识图教程
- 安全操作规程职工安全通则
- 脚手架拆除审批、监控记录
- 中国古代文学之陈子昂课件
- 污水厂污水管网运营维护方案
- 产科医院感染风险评估表
- 矿山地质灾害与矿山地质环境治理课件
- 心脏检查教案
评论
0/150
提交评论