Ubuntu stm32开发(stm32能做什么)

很多朋友对于Ubuntu stm32开发和stm32能做什么不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

使用Arduino开发STM32之环境搭建(附带小鱼的唠叨)

大家好,我是爱吃猪脚饭的小鱼,今天我们将探索如何利用Arduino平台开发STM32并借助HAL库。选择这个主题是因为小鱼注意到,很多初学者倾向于依赖特定平台,尤其是STM32。在小鱼的大学时期,STM32开发主要分为库函数和寄存器派别,而不同派别之间存在争议。小鱼认为,简化产品设计是关键,虽然这可能挑战技术难度,但能带来更好的用户体验,尤其在AI快速发展的今天。

相较于直接使用STM32的寄存器库函数或HAL开发,小鱼更推荐Arduino。Arduino的优势在于,它能用较少的代码实现复杂功能,虽然有人可能通过CubeMX直接配置生成代码,但Arduino的强大生态提供了丰富的现成库,方便直接使用。

在本教程中,我们将混合使用Arduino和HAL,展示如何进行编程,比如这样:

以及如何创建C++类。当然,我们也会涉及cubemx和PIO的开发流程,尽管小鱼暂时无法演示,因为实物板子不在手边。首先,无论是Windows还是Linux(小鱼更偏爱Linux),我们从安装开始,推荐Ubuntu 22.04,因为它有一键安装支持。

安装步骤如下:

运行一键安装链接

安装VSCode并搜索平台IO插件

初始化和安装PlatformIO IDE,注意可能需要手动操作

在VSCode中新建并配置工程

编写并运行代码,包括上传工具安装

设置下载模式和多板子支持

这篇文章提供了详尽的步骤,如果你对Arduino开发STM32感兴趣,别忘了尝试并分享你的成果哦!

怎么在ubuntu下开发stm32

环境:

ubuntu 13.10

stm32f103zet6

一、STM 32 GCC安装

stm32属于arm cortex-m系列thumb指令集,所以给arm用的arm-none-eabi就可以了,首先是下载

下载地址:

下载其中的gcc-arm-none-eabi-version-linux.tar.bz2

解压到目录会产生gcc-arm-none-eabi的文件夹

把该编译器添加到用户的环境中:

在最后一行添加:

因为之前有添加过树莓派的编译器了,所以实际上是这样的:

两个编译器环境中间用冒号隔开;

注销后测试:

可以查看到该编译器的版本,就表示可以了。

二、工程环境的建立

新建个工程文件夹及其目录

下载安装官方库:

1、stm32的寄存器不像51 avr等单片机那么少,自己写写库,背背寄存器就可以了,所以ST公司提供了官方的库。为了避免重复造轮子,就直接采用其库,库版本为STM32_USB-FS-Device_Lib_V4.0.0,这个库多了usb支持,下载的话到st官网搜索stm32f10x就有了。

2、解压把解压好的文件夹复制到刚才新建的libs里面.

3、在工程根目录下新建Makefile.common文件,这个为通用makefile。

编译库文件:

进入libs文件夹,新建Makefile:

编译该库:

就会在lib目录下生成libstm32.a,这个就是编译好的静态库了。

建立工程编译ld文件

这个ld文件,为在编译时告诉编译器把代码放到什么地址,根据芯片的内存以及flash容量不同有所调整。

在工程根目录下新建linker.ld文件

根据芯片型号不同,选择相应的RAM FLASH大小。

在工程根目录下新建Makefile文件:

在src里面添加测试源码,主要是startup.c以及main.c。

然后进入工程主目录下make就好了。

嵌入式开发板推荐

嵌入式开发板推荐包括Arduino UNO、Raspberry Pi、STM32开发板、ESP32开发板、BeagleBone Black和Jetson Nano开发板。

首先,Arduino UNO是开源AVR单片机开发板,非常适合艺术家和爱好者使用,可以轻松打造交互式项目。它简单易用,有丰富的库函数和社区资源支持,是初学者入门嵌入式开发的不错选择。

其次,Raspberry Pi是基于ARM处理器的开发板,功能强大且外设丰富。它支持多种操作系统,包括Raspbian、Ubuntu等,可以满足各种嵌入式应用需求。Raspberry Pi有丰富的GPIO接口,可以连接各种传感器和执行器,非常适合物联网和智能家居等应用。

STM32开发板是基于Cortex-M3/M4内核的高性能、低功耗开发板。它具有强大的处理能力和丰富的外设接口,可以满足复杂的嵌入式系统开发需求。STM32开发板广泛应用于工业控制、汽车电子等领域。

ESP32开发板则是一款集WiFi和蓝牙功能于一身的开发板,通信能力强劲。它适用于智能家居和物联网应用,可以轻松实现设备间的无线通信和数据传输。ESP32开发板体积小、功耗低,非常适合便携式设备和远程监控等应用。

另外,BeagleBone Black搭载ARM Cortex-A8处理器和Linux系统,是物联网、机器人等应用的理想选择。它具有丰富的接口和扩展能力,可以满足各种高性能嵌入式系统的开发需求。

最后,Jetson Nano开发板是基于NVIDIA Jetson Nano芯片的嵌入式开发板,为人工智能和机器视觉应用提供强大支持。它适用于深度学习、图像识别等领域,可以帮助开发者快速构建智能应用。

综上所述,这些嵌入式开发板各有特点,分别适用于不同的应用场景和需求。在选择时,建议根据自己的项目需求、预算和开发环境等因素进行综合考虑。

阅读剩余
THE END