




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《嵌入式系统设计(基于STM32F425章课后题参考答案GPIO答:输入浮空模式。输入上拉模式。输入下拉模式。模拟功能模式。具有上拉/下拉功能的开漏输出模式。具有上拉/下拉功能的推挽输出模式。具有上拉/下拉功能的复用功能推挽模式。具有上拉/下拉功能的复用功能开漏模式。STM32F429GPIO端口有16个引脚。当引脚被配置为模拟功能模式时,上拉/下拉功能应被__。当引脚被配置为输出模式,而输出类型被配置为开漏时,引脚要输出高电平,需要使能引脚拉功能 。控制引脚输出电平时,需要操作ODR 寄存器;获取引脚状态需要操作IDR 寄存器。stm32f429的库函数中,使能GPIOA时钟,使用的库函数是RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE)。stm32f429GPIO功能,使用的库函数是voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)。GPIO12GPIO_InitTypeDefGPIO_Pin的值是GPIO_Pin_1|GPIO_Pin_2 。9.在stm32f429的库函数中,读取某个特定GPIO引脚状态,使用的库函数是uint8_tGPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)。.在stm32f429的库函数中,设定某些特定GPIO引脚输出状态,使用的库函数是GPIO_SetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)voidGPIO_ResetBits(GPIO_TypeDef*uint16_tGPIO_Pin)。答:PMOSNMOSODR寄存器中对应位写时,NMOS管截止,PMOSODR寄存器中对应位写‘0’时,NMOSPMOS管截止,引脚输出低电平。NMOSODR‘1’ODR寄存器中对应位写‘0’时,NMOS通,PMOS管截止,引脚输出低电平。5V答:不具备耐5V功能。此时,引脚输入通道和数字电路隔离,处于模拟电路状态答:GPIO的时钟(非常重要,涉及以下文件。GPIO工作模式。GPIO引脚的复用功能。在应用程序中读取引脚状态、控制引脚输出状态或使用复用功能完成特定功能。编写程序,将GPIOD13579号引脚配置为推挽输出模式,速度为0、246号、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);GPIOD1号、5号、7号引脚输出高电平,3号、926号、8号上的状态读到处理器中。答:unsignedshortinta,b,c;GPIO_SetBits(GPIOD,GPIO_Pin_1|GPIO_Pin_5|GPIO_Pin_7)GPIO_ResetBits(GPIOD,GPIO_Pin_3|GPIO_Pin_9);a=GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_2);b=GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_6)c=GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_8);STM32F429IGT6GPIOE5GPIOB2LED5-16所示。5-1616请编写程序实现按键动作的检测,编写以下程序。主程序。LED引脚的初始化程序。按键检测程序。voiddelay_ms(u16nms);答:#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){}(3)
GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2GPIO_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);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
else
returnKEY_OFF;returnKEY_OFF;}5-17所示。矩阵按键扫描原理和流程图。S1~S4引脚初始化程序和按键控制程序。图5-17题17电路图答:(1)开始①将列线设置为输出模式(图中PB0和PB1,并分别在PB0和PB1设置为输入模式(图中PB2和PB3。都使能上拉。②读取PB2和PB3状态,判断是否有按键按下。(判断原则:PB2PB3都是高电平时,没有按键按下。PB2和PB3低电平是,有按键按下。判断原理:在没有按键按下去的时候,由于上拉电阻的存在,PB2PB3都是高电平,读取状态时,PB2=1,PB3=1。如果有按键按下去的话,摸一个行线和列线连接在一起。由于PB0PB1PB2PB3状态时,就不会全是高电平。S1时,PB1PB2连在一起,PB2被PB1PB2PB3状态时,PB2=0,PB3=1)有按键按下则继续③,反之则结束。③延时去抖动。典型值是延时10ms,不同的按键类型,时间长度不一样。④在此判断是否有按键按下,原理同步骤②②④都判断有按键按下时,继续⑤。反之则结束。PB2PB3的状态,作为判别行号的依据。⑥将行线设置为输出模式(图中PB2和PB3,并分别在PB2和PB3设置为输入模式(图中PB0和PB1。都使能上拉。⑦读取PB0和PB1的状态,并保存。作为判别列线的依据。结束开始①开始①设置列为输出低电平,行为输入模式N②(第1次判断)Y③延时10ms④N(第2次判断)Y⑤保存行号⑥设置行为输出低电平,列为输入⑦将键盘值读进来,存起来(列号)⑧根据两次读到的行号和列号判断是哪一个按键结束(2)/*将列设置为输入,行设置为输出*/voidGPIO_LieIN_HangOUT(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_OD;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_Init(GPIOB,&GPIO_InitStructure);}/*将列设置为输出,行设置为输入*/voidGPIO_LieOUT_HangIN(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_OD;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_Init(GPIOB,&GPIO_InitStructure);}voidKEY_SCAN(void){u8Lie_Data,Hang_Data;GPIO_LieOUT_HangIN();GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1);//将列设置为低电平,扫描行if((GPIO_ReadInputData(GPIOB)&0x0a)!=0x0a){delay_ms(100);//去抖动if((GPIO_ReadInputData(GPIOB)&0x0a)!=0x0a){Hang_Data=GPIO_ReadInputData(GPIOB)&0x0a;//保存行扫描结果GPIO_LieIN_HangOUT();GPI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同变更协议书共
- 废旧沥青购买合同
- 水稳料供销合同
- 厂房电路安装合同
- 拆旧合同协议
- 连锁超市合作协议合同书
- 甲方更改合同协议
- 工程装修维修协议合同书
- 重要的合同协议放在哪儿
- 合同附件技术协议
- 2023年郑州轨道工程职业学院单招职业适应性考试题库及答案1套
- 2025年许昌职业技术学院单招职业技能测试题库附答案
- 国家粮食和物资储备局直属联系单位招聘笔试真题2024
- 2024年新食品安全法相关试题及答案
- 新疆阿克苏地区拜城县2023-2024学年七年级下学期数学期中考试试题(含答案)
- 攀枝花2025年四川攀枝花市仁和区事业单位春季引才(15人)笔试历年参考题库附带答案详解
- 劳务派遣标书项目实施方案
- 手术安全管理课件图文
- 2025年河南经贸职业学院高职单招职业技能考试题库附答案解析
- 2025年《义务教育小学美术课程标准测试卷2022版》测试题库及答案
- 2024北京东城区初一(下)期末英语试题和答案
评论
0/150
提交评论