| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 万物基于点灯 -> 正文阅读 |
|
[嵌入式]万物基于点灯 |
1.购买开发板淘宝或闲鱼购买?ST?NUCLEO-F103RB 开发板,买官方的开发板比第三方要 便宜大约60-80,而且板载下载器很方便. 2.下载资料下载正点原子的资料,原子哥的资料还是很全,原子哥对中国stm32技术应用普及,比那些大学作用大得多.当然我不建议白嫖,买个最便宜的开发板吧,反正我买了.当然先白嫖,后补票也可以. ? 只下载资料就行,我又不是小白,视频就不用看了哈.
3.安装keil需要注意的几点: 1. keil 这个开发工具,是收费的.不要在公司电脑上安装.个人电脑上安装没有问题. 2. keli 安装好后需要破解.破解软件 在正点原子qq群里 查keil注册机就能找到. 我用win10 安装的,这个软件安装遇见点问题,需要关闭 实时保护 不然 破解用的注册机打不开. ? 4.开始伟大的工作-点灯官方的例程在:
打开一个基础的GPIO例程,
运行后DK上的LE2开始闪烁. 然后发现新装的快捷键不好使,改下: 比如改 Ctrl+D 跳转到定义.相应的改下,注释的快捷键. ?简单改了下代码重新烧录,居然没效果,试了几次,试到按下复位按键时才有效果. 想起来,新装的keil 要改下烧录配置.下图的 reset and run 勾上,程序烧录后才会运行.否则需要按下复位键才能运行. ? ?简单改下代码,试了下,这是个高电平点亮的led,为了验证,看了下原理图,确实是的.
代码点灯其实不利于外行去理解MCU,还是要用寄存器控制方便理解.如下图. ?点击 ODR5? 后面的小方框,选择打钩,那么LED亮起,取消勾选,LED亮起.其实单片机的io很简单,就和你用墙上的开关控制你家客厅的灯一样. 你去改变?ODR5 寄存器的bit位时,可以看到 具体寄存器二进制数值的改变. 后话: 关于点灯的方式有很多,你可以用寄存器点灯,你可以用库函数点灯,你可以用操作系统点灯.重要的不是灯,而是你的程序运行起来,并且按照你的预期显示出正确的现象. 作为一个开发者,如何看待一个灯? 第一个层面: LED是一个GPIO 由GPIO高低电平控制,我在代码中控制寄存器,来让它亮灭. 第二个层面: LED是一个硬件外设, 他具有 亮灭,呼吸,渐变,RGB调色,闪烁,这几种状态. 我需要把他模块化.我需要LED 执行的API,比如LED_ON();LED_OFF();接口给到主函数调用,这里要注意的是,API不应该带有IO的参数. IO的参数应该定义在,对于模块的 .h文件中. 第三个层面: LED是产品和用户的交互接口. ?比如一个电视机屏幕,作为用户如何知道电视机到底开没有?通过指示灯,指示灯亮了,表示电视插电了,没亮表示电视机没有插电. 复杂一点的蓝牙耳机,红灯快闪,表示低电量.绿灯呼吸表示在充电,绿灯长亮,表示电充满了. 这里 电子产品的状态和指示灯,有一个对应关系.这个关系,在程序中应该呈现为一个表格.这个对应关系表应该是方便修改的.比如 产品需要通过LED告诉客户 一个 数字3,通过蓝灯闪三下,熄灭停顿,再闪三下.那么这个就包含了两种状态,灭+闪烁,灭的时间,闪烁的时间,都是可修改的参数. 真正的模块化架构,就是面向需求编程,模块接收一个事件,执行一个动作.如果看到代码能够一眼倒推出,该产品的功能需求.这样的代码才是优秀的代码. 后面我会在STM103上实现上述的代码. ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
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年12日历 | -2024/12/27 10:16:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |