完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
linux下的STM32开发直接c代码开发环境已经定了,看上一篇,命令行速度快,简单粗暴,但还简单,而且没有简单易用的IDE,调试非常不方便,灵机一动,Arduino不是跨平台的么?而且之前在windows上已经成功导入了stm32的库,已经跑通了,何不迁移到linux上?这简直就是简单到上的“跨平台”环境,一番折腾开发下,跑了起来。这个可以作为嵌入式开发入门利器,可以不作为对象的相关资源,也可以作为物联网快速应用平台,F103C8T6经典的开发板,10元以下就可以进行定位,做培训和教育类应用太实用了。
1.下载安装的Arduino的 2.下载安装STM32包 3.解压到/home/Arduino/硬件板目录 4.打开Arduino选择子,下载方式选择stlink 下载方式可以用串口bootloader烧录的方式(有时间再研究),但stlink快速,但同时需要相应的软件和库支持,下面就遇到这个问题 5.在例子里选择测试 选择眨眼示例程序,内置的领导就是PC13,或者替换成相应的io口 //当你按下重置或power the board void setup() { //初始化数字初始化LED_BUILTIN作为输出时,setup函数运行一次。 pinMode(LED_BUILTIN,输出); } // 循环函数一次又一次地永远运行 void loop() { digitalWrite(LED_BUILTIN) , 高的); // 打开 LED (HIGH 是电压) delay(1000); //等待第二个 digitalWrite(LED_BUILTIN, LOW); //通过使电压 低延迟(1000)关闭LED ;//等待第二个 } 这个值在哪定义? (boards)/ants/board/variant.h文件定义定义 提示找到varilibu***库 安装sudo apt install libu**** 提示错误 的libu***-1.0-doc的设置为手动安装。 libu***muxd4已经是最新版本(1.0.10-2ubuntu0.1)。 无法安装某些软件包。可能这意味着您 请求了一个不可能的情况,或者如果您使用的是稳定从 发行版,则部分需要的包尚未创建 或已传入。 以下信息可能会解决这种情况: 以下信息具有未满足的依赖项: libu***-ocaml:依赖项: liblwt-ocaml-io1z5 依赖项:ocaml-base-nox-4.02.3 冲突:libu***-ocaml:i386 但1.3.0 -3build1 将被安装 libu***-ocaml:i386 :冲突:libu***-ocaml 要安装但1.3.0 -3build1 libu***-ocaml-dev :依赖:liblwt-ocaml-dev-io1z5 依赖:ocaml-nox-4.02.3 推荐:ocaml-findlib但不会安装 冲突:libu***-ocaml-dev:i386 但要安装1.3.0 -3build1 libu***-ocaml-dev:i386 :依赖:liblwt-ocaml-dev-i9vz1:i386 依赖: ocaml- nox-4.02.3:i386 Conflicts: libu***-ocaml-dev but 1.3.0-3build1 is to be installed E: 无法解决问题,你持有损坏的包。 发现linux目录下的st-flash用不能,但是linux64目录下的可以用,那个工具目录是哪里设置的? 调用的下载是st-flash,默认工具目录了hardware/boards/tools/linux 在这个目录下展示stlink_upload的配置文件,修改其中指定的st-flash目录至linux64 #!/bin/bash /home/hy/Arduino/hardware/Arduino_STM32-master/tools/linux64/stlink/st-flash write "$1" 0x8000000 exit 0 再执行,下载成功 至此,配置成功 5.测试串口 查看IO口定义 在boards/board/variants /board/board.h #ifndef _BOARD_GENERIC_STM32F103C_H_ #define _BOARD_GENERIC_STM32F103C_H_ #define CYCLES_PER_MICROSECOND (F_CPU / 1000000U) #define SYSTICK_RELOAD_VAL (F_CPU/1000) - 1 /* takes a cycle to reload */ #define BOARD_NR_USARTS 3 #define BOARD_USART1_TX_PIN PA9 #define BOARD_USART1_RX_PIN PA10 #define BOARD_USART2_TX_PIN PA2 #define BOARD_USART2_RX_PIN PA3 #define BOARD_USART3_TX_PIN PB10 #define BOARD_USART3_RX_PIN PB11 #define BOARD_NR_SPI 2 #define BOARD_SPI1_NSS_PIN PA4 #define BOARD_SPI1_MOSI_PIN PA7 #define BOARD_SPI1_MISO_PIN PA6 #define BOARD_SPI1_SCK_PIN PA5 #define BOARD_SPI2_NSS_PIN PB12 #define BOARD_SPI2_MOSI_PIN PB15 #define BOARD_SPI2_MISO_PIN PB14 #define BOARD_SPI2_SCK_PIN PB13 #define BOARD_NR_GPIO_PINS 35 #define BOARD_NR_PWM_PINS 12 #define BOARD_NR_ADC_PINS 9 #define BOARD_NR_USED_PINS 4 #define BOARD_JTMS_SWDIO_PIN 22 #define BOARD_JTCK_SWCLK_PIN 21 #define BOARD_JTDI_PIN 20 #define BOARD_JTDO_PIN 19 #define BOARD_NJTRST_PIN 18 #define BOARD_USB_DISC_DEV NULL #define BOARD_USB_DISC_BIT NULL #define LED_BUILTIN PC13 // Note this needs to match with the PIN_MAP array in board.cpp enum {undefined PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13,PA14,PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13,PB14,PB15, PC13, PC14,PC15 }; #endif 其中PA9/PA10对应UART1所以将可能会监控或接收到PA9/PA10进行调试信息,应将打印信息输出到反应打印1 测试成功,这是一次愉快的 stm32 开发板进行 linux 下的 arduino 开发了,最简单易用的想法了,没有一个。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
742浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
578浏览 3评论
601浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
563浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 17:08 , Processed in 1.052718 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号