| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 薪火培训电控第一讲——单片机与GPIO -> 正文阅读 |
|
[嵌入式]薪火培训电控第一讲——单片机与GPIO |
文章参考: 2021北京理工大学机器人队第四届薪火培训 电控部分——单片机与GPIO 【SUES木鸢机甲工作室】RoboMaster电控组基础培训——单片机基础 关于单片机初识单片机相信很多同学第一次看到“单片机”这个字眼的时候都不是很清楚其具体含义,上百度一查,看到类似下面的晦涩语句:
其实,要想快速地理解一个东西最好的方法是看一看这个东西长什么样子,应用是什么,怎么用它。 下面这枚黑色小方块,就是所谓的单片机,就像前面百科说的那样,其实就是一块芯片,芯片周围有根据芯片型号数量固定的引脚 常用的STM32F103C8T6,有48个引脚
时钟时钟可以简单理解为像单片机的心脏,每跳动一下,单片机各个电路就同步运行一下。只要单片机接上了电,无论单片机处于什么状态(跑进while(1),进回调……),时钟总是以一定的频率在运行。 时钟的频率是通过高低电平来实现的,它决定着单片机运行的快慢,我们总是希望时钟越快越好。 至于时钟选择如何在软件中操作,那便是下面的事了,这里暂且不表 GPIO简介GPIO的全称:General Purpose Input/Output
GPIO
Input输入
Output输出
功能 判断读取引脚输入电平高或低
功能 设置引脚输出电平高或低
GPIO函数我们使用的Cube能够帮我们自动生成很多代码,因此我们就介绍几个与输入输出有关的函数
八种输入输出模式GPIO的八种模式的实现原理已经有大佬写得很详细了 不过其软件方面没必要学习,链接里使用的是标准库,而我们使用的是HAL库 在这里我就给一个简单的理解
不过需要说明的是,我们平常使用GPIO,保持默认其实能够满足大部分需求 Cube和keil使用简介使用cube建立项目
keil使用贴一个keil快捷键的使用那些快捷键不香吗?无能KEIL 其二 快捷键 相信很多大一的同学看到keil这么多代码头都要晕了 作业讲解与点评作业的前两项,其实就是为了让大家复习一下这节课学习的东西,无所谓多少,无所谓质量,只要做了就行 第三项作业就是比较难的了(相对而言),也是希望大家拥有能够自学的能力,在听我们第二节课的时候能够轻松一点。组长也一再强调希望作业能够难一点,所以我就直接把我们第二节课的内容搬了一点上来。 讲解ok,那就先来讲解一下这份代码
学过了今天的内容之后,相信大家对于这个函数实现的功能应该比较明白了,说白了就是通过GPIO输出一个pwm波。 我们GPIO只能够输出高电平和低电平,即0和1。可是生活中很多东西并不是非黑即白的,它很复杂。单片机也是这样。我们能输出0,1,这很好,但是万一要输出0.8,0.2这样的值呢? 为了实现这样的输出,pwm波算是一种途径,具体实现的方法学长有详细的讲解,大概就是某个时间段内的“有效电平”,1s内我有0.8s输出1,0.2s输出0,那么这1s内我的有效电平就是0.8。大概可以这么理解。
这边其实还整了一个花活,就连接一个按键到PA5,通过读取PA输入电平来判断按键是否被按下,若被按下切换为呼吸灯,如果一直保持不被按下的状态,则是常亮。其实按键来控制还有更高明的方法,更灵活,功能也更加强大,就是第三节课要将到的外部中断,有兴趣的同学可以预习一下。 至于呼吸灯,第二节课应该是讲过了,还有比较神奇的按键消抖,那就自行百度咯~ 作业点评大概有五分之一的同学能够正确写出“呼吸灯”或者“pwm”这样的字眼,其实写到这个份上应该算是回答正确,能够写出整体逻辑更好。(但是有的同学就写上三个字“呼吸灯”这让我有点手足无措,也不知道是不是真的搞懂了) 不过有的同学却误入歧途,讲解了SystemClock_Config,MX_GPIO_Init这些cube帮我们配置好的函数的作用,我们上课的时候不是说了嘛,这么多的代码在这个阶段我们不用很关注,只需要知道一般在哪里写就行,譬如你进我的项目先看看while(1),一看duty_output没有见过,那就右击选择go to definition看看这到底是个什么玩意儿,再稍微理解一下就差不多了。 前几天更新了一下cube,所以版本是最新的,大家估计因为版本低所以打不开,关系也不大,很多东西都在keil里,你不会升级cube,打开keil读读代码也行。但是就有好些个同学就写“打不开,没看”,这就让我们有点哭笑不得了。搞机器人本来就是“敢热爱,你就来”的科创,这种敷衍潦草的态度我深不以为然。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:25:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |