嵌入式课程设计 —— GPIO接口编程
GPIO口编程:
嵌入式开发里面的 LED点灯 相当于 C语言的Hello World
STM32 GPIO 口名称: PA PB PC .... PF PG ... 一般每个端口有16个引脚(每个引脚对应一个GPIO口)
1.查看电路图
LED0 ---> PF9
LED1 ---> PF10
2.如何控制GPIO口的高低电平
软件控制硬件:配置寄存器来控制硬件工作。
需要配置的寄存器:(手册GPIO)
端口模式寄存器(GPIO_MODER):用来设置GPIO口的工作模式
上拉/下拉电阻寄存器(GPIO_PUPDR):设置上拉/下拉电阻
输出数据寄存器(GPIO_ODR):每个bit用来设置一个引脚的高低电平
/* myled.cGPIO LED驱动
LED0 --> PF9
LED1 --> PF10
*/#include"sys.h"
/*
初始化PF9 PF10为输出工作模式
上拉电阻使能 初始化为高电平
推挽输出方式
*/
void InitLedGpio(void)
{ //打开GPIOF的时钟信号RCC->AHB1ENR |= (0x1<<5);//设置PF9-10为输出工作方式GPIOF->MODER &= (~(0xf<<18));//左移8位,按位取反,使清零GPIOF->MODER |= (0x5<<18); //置0101//配置PF9-10 为推挽工作模式GPIOF->OTYPER &= (~(0x3<<9));//配置PF9-10 上拉电阻使能GPIOF->PUPDR &= (~(0xf<<18));GPIOF->PUPDR |= (0x5<<18);GPIOF->ODR |= (0x3<<9);
}//打开LED灯,PF9-10 设为低电平
void TurnOnLed(void)
{GPIOF->ODR &= (~(0x3<<9));
}
//打开LED灯,PF9-10 设为高电平
void TurnOffLed(void)
{GPIOF->ODR |= (0x3<<9);
}
main函数写在下面时钟设置里
工程结构:
==========================================================================
时钟设置:
/*
main.c
*/#include"sys.h"
#include"usart.h"
#include"delay.h"
#include<stdio.h>
int count = 0;//声明LED相关函数void InitLedGpio(void);
void TurnOnLed(void);
void TurnOffLed(void);
int main(void)
{/*//init sys clock*/Stm32_Clock_Init(336,8,2,7);//init sys delay_init(168);//uart_init(84,115200);InitLedGpio();while(1){delay_ms(300);TurnOnLed();delay_ms(500);TurnOffLed();delay_ms(200);printf("this is my first program\n");}return 0;
}
注释乱码了,上截图
时钟设置原理图:
嵌入式课程设计 —— GPIO接口编程相关推荐
- 嵌入式课程设计 —— STM32 定时器编程
1.定时器基本功能:定时和计数 2.基本原理:对脉冲信号进行计数 3.定时器的编程思路: 1)配置定时器计数脉冲信号的频率: 2)设置定时器的工作方式:向上/向下计数,是否允许中断 3)设置定时器的定 ...
- 嵌入式课程设计 —— STM32串口编程
STM32F407 串口个数:6个串口 串口1:用来输出调试信息 STM32串口2的使用: 1)STM32F407开发板 ----------------- tiny4412开发板 通信 网络串口 2 ...
- 流水灯嵌入式课程设计(包含UCOSII的无仿真和无UCOSII的有仿真)
目录 流水灯设计原理 1.基于STM32F103R6Tx的流水灯设计,先初始化管脚,编写LED.KEY按键和定时器的初始化函数. 2.按键的判断设计分为两部分:开始/停止按键和设置时间按键. ① 开始 ...
- 嵌入式课程设计 使用 tini4412配合交叉编译环境 完成串口助手的制作(已解决主机与设备通过网线FTP连接和交叉编译环境的部署问题)
嵌入式课程设计 使用 tini4412配合交叉编译环境 完成串口助手的制作 注:还没有完全写完,不过主要过程都在中间了 摘要 本文主要介绍一下五个部分: tini4412的系统烧写 虚拟机上交叉编译环 ...
- 课程设计报告linux小游戏,嵌入式课程设计报告---贪吃蛇游戏.doc
嵌入式课程设计报告---贪吃蛇游戏 嵌入式系统课程设计报告书 课题题目:贪吃蛇游戏 学 院:核自院 班 级:测控三班 学 号:9 姓 名: 马文铂 第一章 引言- 2 - 1.1关于题目- 2 - 1 ...
- 聊城大学理工学院-嵌入式课程设计-stm32f407小车
最近两天有点偷懒了,什么都不想做,所以今天不接着弄上次的GPS模块了,今天就分享点别的-----大三时做的嵌入式课程设计.当时做好后也算是好几个班流传最广的版本了,所以多少还是很有点成就感的. 实现的 ...
- c语言电子时钟课程设计报告,电子时钟嵌入式课程设计报告
<电子时钟嵌入式课程设计报告>由会员分享,可在线阅读,更多相关<电子时钟嵌入式课程设计报告(19页珍藏版)>请在人人文库网上搜索. 1.合海大学计算机信息工程学院(常州)课程设 ...
- alin的学习之路:嵌入式课程设计总结(基于Linux的Qt版MP3播放器)
嵌入式课程设计总结(基于Linux的Qt版MP3播放器) 废话不多写直接上图上代码,其中有很多不规范的地方,希望大佬们指正. 1.课设题目 设计一个MP3播放器,要求:使用Linux下的madplay ...
- 用linux设计99乘法表,嵌入式课程设计九九乘法表
<嵌入式课程设计九九乘法表>由会员分享,可在线阅读,更多相关<嵌入式课程设计九九乘法表(8页珍藏版)>请在人人文库网上搜索. 1.安阳师范学院计算机与信息工程学院嵌入式系统课程 ...
- 用英文给嵌入式计算机下定义,嵌入式课程设计报告--嵌入式系统项目设计.doc
河海大学计算机与信息学院(常州) 课程设计报告 题 目 嵌入式系统项目设计 专业.学号 授课班号 277704 学生姓名 同组学生 指导教师 完成时间 2011年6月 课程设计(报告)任务书 (理 工 ...
最新文章
- 相关计算机专业的英语文献,英文文献及翻译计算机专业.doc
- Linux内核之内存管理(4)--缺页处理程序
- JS操作frame框架
- Windows 10:开机显示C:\WINDOWS\system32\config\systemprofile\Desktop不可用 的解决方法
- 制作ubuntu 18.04 U盘启动盘
- router3 BGP1 基础部分
- 第十三节:实际开发中使用最多的监视锁Monitor、lock语法糖的扩展、混合锁的使用(ManualResetEvent、SemaphoreSlim、ReaderWriterLockSlim)
- c++ 弧形面如何逆时针排序_环形导轨的滑座如何通过弧形段?
- 面试题之wait()和sleep()方法区别
- php mysql登陆页面完整代码_PHP实现用户登录的案例代码
- Flash Builder4安装SVN插件
- 技术人员的会议优化记录
- 实验二 —— 串口通信
- GitHub上广受欢迎的下载神器:youtube-dl
- abaqus各种文件说明
- 代码防御性编程的十条技巧
- rc时间常数定义_低通滤波中RC时间常数设定,我是这么思考的
- 华为鸿蒙系统建立生态链的环境,华为自研操作系统,怎么构建生态?感觉太难了?...
- 抖音搬运被限流评级怎么办,什么是有效申诉和无效申诉丨国仁网络资讯
- 爬虫模拟登录人人网的三种方法