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接口编程相关推荐

  1. 嵌入式课程设计 —— STM32 定时器编程

    1.定时器基本功能:定时和计数 2.基本原理:对脉冲信号进行计数 3.定时器的编程思路: 1)配置定时器计数脉冲信号的频率: 2)设置定时器的工作方式:向上/向下计数,是否允许中断 3)设置定时器的定 ...

  2. 嵌入式课程设计 —— STM32串口编程

    STM32F407 串口个数:6个串口 串口1:用来输出调试信息 STM32串口2的使用: 1)STM32F407开发板 ----------------- tiny4412开发板 通信 网络串口 2 ...

  3. 流水灯嵌入式课程设计(包含UCOSII的无仿真和无UCOSII的有仿真)

    目录 流水灯设计原理 1.基于STM32F103R6Tx的流水灯设计,先初始化管脚,编写LED.KEY按键和定时器的初始化函数. 2.按键的判断设计分为两部分:开始/停止按键和设置时间按键. ① 开始 ...

  4. 嵌入式课程设计 使用 tini4412配合交叉编译环境 完成串口助手的制作(已解决主机与设备通过网线FTP连接和交叉编译环境的部署问题)

    嵌入式课程设计 使用 tini4412配合交叉编译环境 完成串口助手的制作 注:还没有完全写完,不过主要过程都在中间了 摘要 本文主要介绍一下五个部分: tini4412的系统烧写 虚拟机上交叉编译环 ...

  5. 课程设计报告linux小游戏,嵌入式课程设计报告---贪吃蛇游戏.doc

    嵌入式课程设计报告---贪吃蛇游戏 嵌入式系统课程设计报告书 课题题目:贪吃蛇游戏 学 院:核自院 班 级:测控三班 学 号:9 姓 名: 马文铂 第一章 引言- 2 - 1.1关于题目- 2 - 1 ...

  6. 聊城大学理工学院-嵌入式课程设计-stm32f407小车

    最近两天有点偷懒了,什么都不想做,所以今天不接着弄上次的GPS模块了,今天就分享点别的-----大三时做的嵌入式课程设计.当时做好后也算是好几个班流传最广的版本了,所以多少还是很有点成就感的. 实现的 ...

  7. c语言电子时钟课程设计报告,电子时钟嵌入式课程设计报告

    <电子时钟嵌入式课程设计报告>由会员分享,可在线阅读,更多相关<电子时钟嵌入式课程设计报告(19页珍藏版)>请在人人文库网上搜索. 1.合海大学计算机信息工程学院(常州)课程设 ...

  8. alin的学习之路:嵌入式课程设计总结(基于Linux的Qt版MP3播放器)

    嵌入式课程设计总结(基于Linux的Qt版MP3播放器) 废话不多写直接上图上代码,其中有很多不规范的地方,希望大佬们指正. 1.课设题目 设计一个MP3播放器,要求:使用Linux下的madplay ...

  9. 用linux设计99乘法表,嵌入式课程设计九九乘法表

    <嵌入式课程设计九九乘法表>由会员分享,可在线阅读,更多相关<嵌入式课程设计九九乘法表(8页珍藏版)>请在人人文库网上搜索. 1.安阳师范学院计算机与信息工程学院嵌入式系统课程 ...

  10. 用英文给嵌入式计算机下定义,嵌入式课程设计报告--嵌入式系统项目设计.doc

    河海大学计算机与信息学院(常州) 课程设计报告 题 目 嵌入式系统项目设计 专业.学号 授课班号 277704 学生姓名 同组学生 指导教师 完成时间 2011年6月 课程设计(报告)任务书 (理 工 ...

最新文章

  1. 相关计算机专业的英语文献,英文文献及翻译计算机专业.doc
  2. Linux内核之内存管理(4)--缺页处理程序
  3. JS操作frame框架
  4. Windows 10:开机显示C:\WINDOWS\system32\config\systemprofile\Desktop不可用 的解决方法
  5. 制作ubuntu 18.04 U盘启动盘
  6. router3 BGP1 基础部分
  7. 第十三节:实际开发中使用最多的监视锁Monitor、lock语法糖的扩展、混合锁的使用(ManualResetEvent、SemaphoreSlim、ReaderWriterLockSlim)
  8. c++ 弧形面如何逆时针排序_环形导轨的滑座如何通过弧形段?
  9. 面试题之wait()和sleep()方法区别
  10. php mysql登陆页面完整代码_PHP实现用户登录的案例代码
  11. Flash Builder4安装SVN插件
  12. 技术人员的会议优化记录
  13. 实验二 —— 串口通信
  14. GitHub上广受欢迎的下载神器:youtube-dl
  15. abaqus各种文件说明
  16. 代码防御性编程的十条技巧
  17. rc时间常数定义_低通滤波中RC时间常数设定,我是这么思考的
  18. 华为鸿蒙系统建立生态链的环境,华为自研操作系统,怎么构建生态?感觉太难了?...
  19. 抖音搬运被限流评级怎么办,什么是有效申诉和无效申诉丨国仁网络资讯
  20. 爬虫模拟登录人人网的三种方法

热门文章

  1. 李彦宏PK马云:后发制人与厚积博发
  2. pandas(一) Series和DataFrame
  3. 2022 年 Flutter 适合我吗?Flutter VS Other 量化对比
  4. 真香!java全栈工程师前景
  5. Mac OS 内存管理知识
  6. 华为鸿蒙用不用清理内存卡,华为这6个设置必须要关,否则天天清理内存也没用,关了再用5年...
  7. ps修改证件照的底色
  8. “校园知网”5月5日冲刺计划书
  9. 信息系统项目管理师---第十三章 项目合同管理
  10. kubernetes 架构及应用场景