王峰《嵌入式系统原理与应用教学》GPIOx端口 编程步骤.docVIP

王峰《嵌入式系统原理与应用教学》GPIOx端口 编程步骤.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GPIOx端口 编程步骤: 第一部分 配置GPIOx端口 步骤一 加入以下头文件: #include stm32f10x_lib.h //若使用RCC_Configuration( ); 使能GPIO外设对应的时钟,还必须加入以下头文件。 //若使用具体的使能外设时钟命令(例如,RCC_APB2PeriphClockCmd( )等 ),则不需要加入以下头文件。 #include HelloRobot.h 步骤二 定义结构体变量GPIO_InitStructure,用于初始化GPIOx端口的参数: GPIO_InitTypeDef GPIO_InitStructure; //此句既可以放在main函数的外部,//也可以放在main函数的内部。 步骤三 使能GPIO外设对应的时钟:必须GPIO_Init( )函数之前执行,否则端口参数设置无效。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE,ENABLE); RCC_Configuration( );/* Configure the system clocks */ 步骤四 设置GPIO管脚、响应速度、工作模式,即设置GPIO端口的参数(通过为结构体变量GPIO_InitStructure 的成员赋值实现): /* LED1 - PB8 , LED2 - PB9 , LED3 - PE0 , LED4 - PE1 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 |GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOE, GPIO_InitStructure); /*我们对GPIO_Pin 成员,赋值GPIO_Pin_0 | GPIO_Pin_1,GPIO_Pin_8 |GPIO_Pin_9。 对GPIO_Speed成员,赋值GPIO_Speed_50MHz , 对GPIO_Mode 成员,则设置为GPIO_Mode_Out_PP,表示推挽输出模式。*/ 把所有端口的所有管脚,设置成模拟输入: 步骤五 ( 调用函数GPIO_Init()来 )初始化GPIO端口,(完成对端口中的寄存器的设置。)代码如下: GPIO_Init(GPIOC , GPIO_InitStructure); 由于GPIOx端口外设的初始化,已经放在前面的初始化参数后面,编程时,此处不必重复写。 以上的步骤二~步骤五,可以打包在一个函数GPIO_Configuration( )中。 在main函数中,仅仅调用该函数即可。使得main程序简洁、明了。 GPIO端口外设,无需使能即可使用。 注:基本上,所有的外设(除GPIO,EXTI外设)都要使能。 理由:stm32的 外设使能,就相当于,C8051F410的外设使能。实现管脚复用,即把外部管脚分配给片内数字资源。(管脚复用是通过交叉开关来实现。) STM32系列单片机的所有GPIO端口外设所在的管脚,默认(即上电复位后)作为GPIO端口外设使用。如下图 所示。当其它外设(例句SPI1外设等)使能时,SPI1所在的管脚PA4、PA5就不再作为GPIO端口外设使用,而是用其复用功能,作为SPI1接口使用。 。。。。。。。。。。。。。。。。。。。。。。 第二部分 操作GPIOx端口(例如 点亮或熄灭LED灯等) i、GPIOx端口 工作在输出方式: 以 控制LED点亮或熄灭 为例 步骤六 【法一】通过GPIO_SetBits();或GPIO_ResetBits(); 点亮或熄灭LED灯 例子, /*====LED12-ON=======*/ GPIO_ResetBits(GPIOB , GPIO_Pin_8); GPIO_ResetBits(GPIOB , GPIO_Pin_9); GPIO_SetBits(GPIOE , GPIO_Pin_0); GPIO_SetBits(GPIOE , GPIO_Pin_1); 延时的方法: 【法1】fo

您可能关注的文档

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档