iar stm32_树莓派玩转STM32开发(一)——介绍篇

01

树莓派

树莓派(Raspberry Pi)听起来让人流口水,但它的确不是吃的(身为吃货的我第一次也以为它是食物……)。树莓派是基于ARM架构的Linux卡片电脑,由英国树莓派基金会开发,目的是以低价硬件以及自由软件来促进学校的基本电脑科学教育。a0fa1ab56b0303a17b2d12c8802c96fe.png 树莓派Raspberry(树莓)源于对微型计算机以水果为基础命名的传统。如苹果机。Pi(派)代表“Python”。因为Python是第一个移植到树莓派上运行的程序。树莓派以低廉的价格和较高的性能,迅速赢得广大极客们的喜爱,这年头手里没有几个树莓派都不好意思上街跟人打招呼。正是因为树莓派价格友好,使用简单,以至于它的玩法有非常多,随便在搜索引擎上使用“树莓派”作为关键字搜索一下就能看到非常多的资料以及新奇的玩法,比如用它作为服务器内网穿透,或把它作为物联网的控制板操控一些电器,或让它作为机器人小车的主控制板,再或者把它变成一个智能路由器等等等等,只有想不到,没有做不到。目前流行的是树莓派3B+以及2019年最新推出的树莓派4B,后者具有更强劲的性能,价格却不比前者贵多少。但是树莓派的核心CPU使用博通的SoC,树莓派官方并没有对其提供一个完整的DataSheet和技术参考手册(Technical Reference Manual, TRM),所以它不能算是一个完全开源的硬件。而且国产的兼容树莓派生态的产品,比如Friendly ARM公司出品的系列单板电脑,价格比树莓派更便宜,同时也不输树莓派的灵活和多功能。

02

STM32

STM32系列芯片是意法半导体公司推出的高性能、低成本和低功耗的32位微控制器(MCU),核心为Cortex-M处理器架构,指令集架构采用Thumb-2变长指令集(相对于定长指令集,在相同ROM存储容量下具有更高的指令密度,降低成本)。

 0e81c5b6f816191b3dcd42fe8fbbdd98.png STM32F103STM32的应用非常广泛,主要领域如汽车、工业、消费电子、通信和医疗等,就拿身边的例子来说,比如空调,电饭煲,抽湿器和洗衣机等,功能稍微丰富一点的设备,都可以使用STM32来实现。再加上最近IoT概念的爆发,一些边缘智能设备比如智能水表,智能家居,智能门锁和共享单车等等,内部或多或少都使用到了STM32实现全部或者部分自动控制功能。在嵌入式STM32开发中,市面上的教程几乎全部是教大家如何在Windows下使用Keil或者IAR这两个IDE和其配套的编译器进行开发和调试。这没什么不好,但是以嵌入式开发者的自身发展角度来看,随着不断进行嵌入式技术的学习,其技术栈最终还是要走到操作系统,再到具体应用和业务的开发,底层系统永远都是为上层应用服务的。而嵌入式下发展势头最猛的操作系统无疑是GNU/Linux,所以在Linux下开发STM32的同时也可以学习Linux的基本操作。其次,Keil和IAR都是商业性的收费软件,绝大部分教程都是教大家如何破解它,这种行为在个人学习的时候无所谓,但是在公司中用盗版软件实现商业用途去开发自己的产品,就有可能收到律师函。在《树莓派玩转STM32开发》系列文章中使用Friendly ARM的Nano Pi K1 Plus作为开发机,STM32F103作为目标MCU进行开发。Nano Pi K1 Plus采用全志H5这款SoC,4核A53,2GB LPDDR3 RAM,支持WiFi,1个HDMI、3个USB口、1个千兆以太网口,价格便宜,性能强劲,同时兼容树莓派的生态。STM32F103是市面上最常见的一款MCU,淘宝上搜一下基于它的开发板超级多,在这里就选择正点原子的ATK-NANO,这块板子比较小巧,板载st-link仿真器,板上资源也比较丰富。ab92a6f46b03fdfcc8a86d95c82bbd81.png Nano Pi K1 Plusd8d36e64d202755582ab56123e54dd3a.pngSTM32F103RBT6

03

结尾

后面会有一系列文章从零开始搭建Linux下STM32开发环境以及一步一步的做一个基于FreeRTOS+MQTT的物联网终端。

参考文档

https://zh.wikipedia.org/zh/%E6%A0%91%E8%8E%93%E6%B4%BE http://wiki.friendlyarm.com/wiki/index.php/NanoPi_K1_Plus/zh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript面向对象的理解

前言 1. 本文默认阅读者已有面向对象的开发思想,最好是使用过c、java,本人Java不太熟悉,所以例子都是用C来写的。 2. 本人不是专业网站开发人员,接触javascript一年多,自己也编写调试了一些代码,本文完全根…

【转】C# 彻底搞懂async/await

关键: 异步方法:在执行完成前立即返回调用方法,在调用方法继续执行的过程中完成任务。 async/await 结构可分成三部分: (1)调用方法:该方法调用异步方法,然后在异步方法执行其任务的…

LeetCode每日打卡 - 汉明距离总和

有点慢,两层循环也可以完成,就是换个方向,外层遍历32大小的bits数组,里层遍历nums的数字每次右移一位,计算方法类似。 class Solution {public int totalHammingDistance(int[] nums) {//int 是4byte , 每…

python编写代码_用 Python 编写干净、可测试、高质量的代码

用 Python 编写干净、可测试、高质量的代码Noah Gift 2010 年 12 月 20 日发布简介 编写软件是人所承担的最复杂的任务之一。AWK 编程语言和 "K and R C" 的作者之一 Brian Kernigan 在 Software Tools 一书中总结了软件开发的真实性质,他说,“…

阿里云服务器被[kthreaddi]挖矿病毒攻击

首先我根本https://blog.csdn.net/weixin_41599103/article/details/115403332这个博客试了下并没有成功,所以应该是被侵入的程序不一样 先去阿里云里看一下详情 明确告诉了是通过docker被攻击了,先将wordpress容器停止并删除容器和镜像 kill掉进行&am…

python canvas画弧度_python画一朵玫瑰给你

听说 python 还能画画?是的,今天亲手画一朵玫瑰给你。turtle 是 python 中一个强大的绘制图像的库,可以用来绘制各种图像,使用起来很方便。但是需要计算各种角度、距离等,所以要想完成一幅复杂的图像还是有一定的难度的…

通俗彻底解读批处理的延迟变量

先说环境变量 一个批处理可以看成是一个程序,它的环境变量就是自己的全局变量。操作系统可以看成是一个大程序,它的环境变量同样也是全局变量,只不过为了和程序的环境变量区别,就叫做全局环境变量了,既然为了区别&…

LeetCode每日打卡 - 4的幂

不使用循环来今天解题 public boolean isPowerOfFour(int n) {return n > 0 && (n & (n-1)) 0 && n % 31;}首先去做了2的幂这道题,并了解了n&(n-1)的过程,然后思考一下这道题:求二进制中1的个数,理解了n&(n-…

【转】探索c#之Async、Await剖析

阅读目录: 基本介绍基本原理剖析内部实现剖析重点注意的地方总结 基本介绍 Async、Await是net4.x新增的异步编程方式,其目的是为了简化异步程序编写,和之前APM方式简单对比如下。 APM方式,BeginGetRequestStream需要传入回调函数…

时间计算题100道_小学数学专项练习:计算题200道,趁早打印给孩子,期末考试拿100分!...

点击上方「升学的秘诀」关注我们!获取更多教育经验、方法、学习资料等,每天中午12点与您相约!▼说到我们数学学习过程中最重要的是什么?毋庸置疑那就是我们的一个计算能力,计算可以说是贯穿了我们整个数学学习体系&…

幂等性实现 -接口幂等性

接口幂等性 1.什么是幂等性 对于同一笔业务操作,不管调用多少次,得到的结果都是一样的。 也就是方法调用一次和调用多次产生的额外效果是相同的,他就具有幂等性 2.为什么需要幂等性 在系统高并发的环境下,很有可能因为网络&#…

C 怎么读取Cpp文件_python之调用C加速计算(一)

一、前言python语言是目前比较火的语言,很容易上手,对数据处理也比较友好,可以用几行代码就能进行一些简单的数据处理工作。但是对于稍微大型的数值计算,或者一些涉及到大量循环的数值计算python的计算速度有点让人失望。即使是使…

【转】刨根究底字符编码【2.0版】(3):字符编码的由来、演变与ASCII码

为什么需要字符编码 1. 计算机一开始发明出来时是用来解决数字计算问题的,后来人们发现,计算机还可以做更多的事,例如文本处理。 但计算机其实挺“笨”的,它只“认识”010110111000…这样由0和1两个数字组成的二进制数字&#…

JS创建对象的模式介绍

转自http://www.cnblogs.com/asqq/archive/2013/02/01/3194993.html

matplotlib的优点_超详细matplotlib基础介绍!!!

(给Python开发者加星标,提升Python技能)来源:逐梦erhttps://zhumenger.blog.csdn.net/article/details/106530281【导语】:出色的数据可视化,会让你的数据分析等工作锦上添花,让人印(升)象(职)深(加)刻(薪)。matplotli…

【转】WPF PRISM开发入门一( 初始化PRISM WPF程序)

这篇博客将介绍在WPF项目中引入PRISM框架进行开发的一些基础知识。目前最新的PRISM的版本是Prism 6.1.0,可以在Github上获取PRISM的源码。这个系列的博客将选择PRISM 4.1版本来讲解。可以从微软官网上下载到PRISM 4.1相关内容。将下载下来的文件解压开: …

截屏悬浮软件_功能强大,却小巧的录屏软件,不在错过你的王者时刻

看看录屏是一款操作简单。功能强大的录屏软件。他可以设置你录制视频的一个分辨率,帧率以及录制屏幕方向,非常方便,用户将手机摇一摇就可以控制开启和停止录屏,高效录制精彩瞬间,在录制游戏视频的时候也可以做到不掉帧…

公司用的非标普通自动化用单片机还是plc_PLC的介绍

PLC又叫可编程控制器,一开始是替代传统接触器的一个东西。随着人工价格不断的上涨,自动化的设备会越来越普及。自动化不再是大企业才用的起的东西 ,各种多元化小型自动化设备进入了普通小企业甚至家庭作坊。PLC其实是单片机开发出来的一种工业…

比较文本差异的工具_Linux 开发的五大必备工具 | Linux 中国

Linux 已经成为工作、娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它。在 Linux 的帮助下,技术的变革速度超出了人们的想象,Linux 开发的速度也以指数规模增长。因此,越来越多的开发者也不断地加入开源和学习 Linux 开发…