Linux对于开发者来说真的是一个非常好的系统,为开发者来说应该不陌生,通常我们在Windows下开发stm32很方便,有非常多的工具,IDE等支持,同样是操作系统,Linux开发STM32也一点不会差。
Linux下开发stm32也有很多方法:
1.使用makefile
2.使用eclipse
3.使用stm32cubemx+sw4stm32
4....
有大神使用第一种,本人对makefile一知半解,拿不出手。第二种,windows下可以使用eclipse开发,eclipse有linux版本,所以应该也是可以的,不过本人并没有试过。这里要说的就是第三种,当然除了这些,像Mbed之类的在线开发工具,只要有网,无论什么平台都能开发的就不说了。
stm32cubemx相信大家都已经很熟悉了,st推出的基于hal库的图形化配置和代码生成工具,不记得从哪个版本开始,这个工具添加了对linux的支持,st大力发展linux用户的野心昭然可见。除此之外,st还和ac6合作推出了stm32 ode,即sw4stm32,一款免费的可开发stm32的集成开发工具。sw4stm32是基于eclipse开发的,打开后的界面和eclipse基本完全一样,也同时支持windows和linux两种版本,这也说明了第二种方法是可行的。下面真正开始开发环境搭建工作:
1.准备工作
下载stm32cubemx:http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html
下载sw4stm32:http://www.openstm32.org/Downloading+the+System+Workbench+for+STM32+installer
这两个软件都需要,所以需要先安装好JRE,这里就不讲了,百度一下都有。
2.安装
其实这两个软件安装方式做得很类似windows下的安装了,解压双击即可安装,不过既然用了linux系统,就允许我装一下逼,用命令行来安装。
安装步骤:
1.完成前面的下载后得到两个文件:
en.stm32cubemx.zip install_sw4stm32_linux_64bits-v1.8.run
首先解压压缩文件包,
unzipen.stm32cubemx.zip
得到
Readme.html
SetupSTM32CubeMX-4.15.0.exe
SetupSTM32CubeMX-4.15.0.app
SetupSTM32CubeMX-4.15.0.linux
四个文件,exe后缀是windows下的安装文件,很熟悉了,.linux后缀就是linux系统的安装文件,此处用这个文件安装,(前面已经说过,可以直接双击安装),直接执行该文件:
./SetupSTM32CubeMX-4.15.0.linux
(如果出错,查看文件是否有执行权限,加上权限后再执行)
效果如图:
此时就会跳出图形安装界面,
这个界面都很熟悉了吧,和windows下一样,按照提示一步一步安装就可以了,甚至可以一路next到底就行。如果双击安装,会直接来到这一步,后面的步骤省略!
到这里,安装就完成了,再安装文件夹下找到STM32CubeMX文件双击,或者通过命令行启动该文件,就可以打开STM32CubeMX软件,见到我们熟悉的界面,使用方法和windows下一模一样,
安装好相应的库之后就可以建立工程了,不过我们还没有开发环境,所以现在先安装开发环境:SW4STM32软件:
执行命令
chmod+x install_sw4stm32_linux_64bits-v1.8.run
给install_sw4stm32_linux_64bits-v1.8.run添加执行权限,可能需要超级权限,切换到root用户或者命令前加sudo执行,然后该文件就有了执行权限(前面多了x,颜色变了)
然后执行文件
./install_sw4stm32_linux_64bits-v1.8.run
开始安装,然后一路next,可以选择自定义安装路径,期间有可能需要输入root用户密码,安装过程和windows基本一样
出现这个界面的时候,恭喜,安装完成了!!!
这个界面和eclipse完全一样的,喜欢eclipse的会比较习惯这个,不过更方便的是直接安装eclipse下的插件。
现在STM32CUBEMX和SW4STM32都安装好了,接下来建一个工程测试一下,手边刚好有一块Nucleo-F429ZI的开发板,就用这块板来测试,用Cube新建工程应该都熟悉了,这里就不详细描述了
一般习惯不勾选Generate Under Root,这样文件结构更合理
生成工程后有这么些文件,然后用sw4stm32打开:
选择File->Import->General->Exist Project intoWorkspace
选择刚刚生成的工程的文件夹,Finish
编译一下工程,没有错误,没有警告,然后添加几行测试代码:
然后编译,运行,就可以看到板子上LD2蓝色LED以1 Hz的频率闪烁,电脑上打开串口助手,就能接收到板子发送过来的测试信息,如下图所示
至此,说明linux下编写stm32程序的环境已经完全搭建成功,并且成功创建了第一个可以运行的测试程序,接下来,就可以愉快的开发自己的stm32应用程序啦
上一篇:Linux下如何搭建stm32开发环境(一)
下一篇:ubuntu下建立stm32开发环境:程序烧录openocd+openjtag
推荐阅读
史海拾趣
随着技术的不断进步,Faraday Electronics Inc意识到单一的产品线已无法满足市场的多样化需求。于是,公司开始积极拓展市场布局,将产品线拓展至智能家居、汽车电子等领域。通过不断的技术创新和市场拓展,公司逐渐在多个领域取得了领先地位,成为了电子行业的佼佼者。
在快速发展的过程中,安森德公司始终注重品牌建设和文化塑造。公司坚持以客户为中心的服务理念,不断提升产品质量和服务水平。同时,安森德还积极参与各类行业活动和公益事业,提升公司的社会形象和品牌价值。在内部管理方面,公司倡导创新、协作、担当的企业文化,为员工提供了一个良好的工作环境和发展平台。这些举措不仅增强了员工的归属感和凝聚力,也为公司的长远发展奠定了坚实的基础。
Eagle Plastic Devices公司成立于20世纪90年代初期,当时市场上对于高性能塑料电子部件的需求日益增长。公司创始人张先生,凭借其在塑料材料科学和电子工程领域的深厚背景,带领团队研发出了一系列具有革命性的塑料电子封装和连接器产品。这些产品以其优异的电气性能、耐用性和成本效益,迅速在行业内获得了认可,为Eagle Plastic Devices公司奠定了坚实的基础。
Brite-Led Optoelectronics Inc公司自创立之初,便专注于LED技术的研发与应用。在一次关键的技术突破中,公司成功开发出一种高效、稳定的LED芯片,其亮度与寿命均远超当时市场上的同类产品。这一技术突破迅速为Brite-Led赢得了市场认可,奠定了其在LED行业的领先地位。随着该技术的不断迭代和完善,Brite-Led的产品逐渐广泛应用于照明、显示、背光等多个领域。
博通在有线和无线通信半导体领域一直保持着技术创新的领先地位。公司不断投入研发,推出了一系列具有竞争力的产品,包括宽带通信芯片、无线局域网芯片组等。这些产品的成功应用,不仅提升了博通的市场地位,也为整个电子行业的发展做出了重要贡献。
Digital Voice Systems, Inc.(DVSI)于1988年成立,当时正值数字通信技术的兴起阶段。公司创始人凭借对语音编解码技术的深刻理解和前瞻性的市场洞察力,决定投身于这一领域。他们开发出了具有专利保护的基于鲁棒性多带激励模型(MBE Model)的低码率语音压缩算法,如IMBE和AMBE编解码系统。这些算法在当时的市场上独树一帜,为DVSI赢得了第一桶金。
在创立初期,DVSI面临着资金、技术、市场等多方面的挑战。然而,他们凭借着坚定的信念和不懈的努力,逐步克服了这些困难。他们不断投入研发,优化算法,提高产品的性能和稳定性;同时,他们积极开拓市场,与各大通信设备制造商建立合作关系,将产品推向市场。
随着时间的推移,DVSI的产品逐渐在市场上获得了认可。他们的编解码系统被广泛应用于移动通信、卫星通信、军事通信等领域,为客户提供了高效、稳定的语音通信解决方案。DVSI也因此逐渐崭露头角,成为了电子行业中一颗耀眼的明星。
故事二至五框架概述
- 技术创新与突破:DVSI在语音编解码技术方面的持续创新,如推出新一代的高效压缩算法,进一步提升了产品的竞争力。
- 市场拓展与国际化:随着公司实力的增强,DVSI开始拓展国际市场,与全球多家知名企业建立合作关系,实现了国际化发展。
- 合作与竞争:在电子行业中,DVSI与其他企业的合作与竞争并存。他们通过合作共赢的方式,共同推动行业的发展;同时,也面临着来自竞争对手的挑战和竞争压力。
- 企业文化与团队建设:DVSI注重企业文化建设,倡导创新、协作、共赢的价值观。他们注重团队建设,吸引了一批优秀人才加入公司,为公司的发展提供了有力的人才保障。
以上故事和框架概述仅供参考,您可以根据这些线索进一步挖掘和编写关于DVSI公司的故事。
如何管理不同的测试结果?摘要就一般标准来说如果测试结果与测试标准之间的差异小于测试仪器的精度就必须提示用户因为这代表测试结果即测试布线的性能在一个灰色的环境中因此测试结果中有一个*号在LinkWare软件中测试数据库是保密的用户不能改动数 ...… 查看全部问答∨ |
|
目录: 第一章 无源滤波器、衰减器和均衡器 第二章 放大器的基本原理 第三章 波形发生器 第四章 模拟信号处理电路 第五章 调制电路与解调电路 参考文献… 查看全部问答∨ |
|
大家好! 小弟最近在搞gprs模块要实现上网,可是遇到了一些问题,希望各位大虾给与帮助,小弟感激 不尽! 小弟用的是西门子MC39I的GPRS模块,ucLINUX内核版本2.6.19,内核中已经选中的 ...… 查看全部问答∨ |
|
驱动芯片为hd66781的mcu lcd驱动问题 大家好,这宽屏在我们的系统上就是出不来数据,有没有调过这款屏的,帮帮忙啊。 初始化代码为: void Mcupanel_PowerOnInit(void) { int i,j; ...… 查看全部问答∨ |
请教一个stm8s103K3的UART1用中断方式发送数据的问题 我现在按照例程,初始化的时候配置CR2=0x08,CR1=0,CR3=0,BRR2=0X68,BRR1=0X02(9600波特率)。 主循环里面在设置CR2|=0X80之后就马上进发送中断,然后给DR赋值,但是再怎么赋值DR仿真器看出来也都是0,发送5个数据后清除CR2,但是用串口助手 ...… 查看全部问答∨ |
STM8S207K6字节写EEPROM时不能执行中断程序??? 我使用STM8S207K6,在向EEPROM中写入3字节数据,用时25ms,这期间竟然不能产生中断(我有定时器中断正好在这个期间内发生),通过仿真观察,core的中断级别是最低(I1 I0=10)。请指教,是怎么回事? 代码如下:(c compiler 是cosmic的4.2.8 ...… 查看全部问答∨ |