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芯片的嵌入式开发板,为人工智能和机器视觉应用提供强大支持。它适用于深度学习、图像识别等领域,可以帮助开发者快速构建智能应用。
综上所述,这些嵌入式开发板各有特点,分别适用于不同的应用场景和需求。在选择时,建议根据自己的项目需求、预算和开发环境等因素进行综合考虑。