ardunio IDE 上传 STM32代码 成功后串口无输出-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7237|回复: 18

ardunio IDE 上传 STM32代码 成功后串口无输出

[复制链接]
发表于 2019-9-17 15:08 | 显示全部楼层 |阅读模式
一.首先通过其它IDE(KEIL)烧录了一份测试程序,验证了硬件是好的,串口通讯正常,BOOT0 BOOT1 都是拉低。
二.确定了烧录代码的地址为首地址 0x8000000...
三.IDE 选择了芯片类型 STM32F103C8T6(主板这个型号),串口端口号5,烧录方式ST LINK
点击上传 整个提示如下:


STM32 ST-LINK CLI v3.3.0.0
STM32 ST-LINK Command Line Interface

ST-LINK SN: Old ST-LINK firmware/ST-LINK already used
ST-LINK Firmware version: V2J17S4 (Need Update)
Connected via SWD.
Target voltage = 3.2 V
Connection mode: Normal
Reset mode: Software reset
Device ID: 0x414
Device flash Size: 512 Kbytes
Device family: STM32F10xx High-density

Loading file...
Flash Programming:
  File : C:\Users\ADMINI~1\AppData\Local\Temp\arduino_build_387370\sketch_sep16a.ino.bin
  Address : 0x08000000
Memory programming...
�������������������������������������������������� 0%
0%�������������������������������������������������� 100%
Memory programmed in 1s and 419ms.
Programming Complete.

MCU Reset.

Application started.


C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\tools\win>rem: Using the open source texane-stlink instead of the proprietary STM stlink exe

C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\tools\win>rem:texane-stlink\st-flash.exe write C:\Users\ADMINI~1\AppData\Local\Temp\arduino_build_387370\sketch_sep16a.ino.bin 0x8000000




但是串口无输出。

请问这个问题谁有头绪?
发表于 2019-9-17 15:33 | 显示全部楼层
写个灯看看程序有没有运行起来
 楼主| 发表于 2019-9-17 19:24 | 显示全部楼层
t3486784401 发表于 2019-9-17 15:33
写个灯看看程序有没有运行起来

可以运行起来 呼吸灯。但是我在呼吸灯里加上串口打印的代码,串口无输出,我测试了硬件串口是OK的,用其它编译器的代码。
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
}

// the loop function runs over and over again forever
void loop() {
  int sensorValue = analogRead(0);
  float voltage = sensorValue * (5.0 / 1023.0);
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
   
  
  Serial.println(voltage);
}
 楼主| 发表于 2019-9-17 19:29 | 显示全部楼层
是不是要添加什么库?
发表于 2019-9-17 20:00 | 显示全部楼层
板子配置信息呢?选错板子了?
发表于 2019-9-17 20:48 | 显示全部楼层
最基本的语法,不用别的库
你的信息是用别的工具烧录时的信息吗?
我一般都用串口方式下载。。。
 楼主| 发表于 2019-9-17 21:32 | 显示全部楼层
t3486784401 发表于 2019-9-17 20:00
板子配置信息呢?选错板子了?

我板子是 STM32F103C8T6  淘宝十几块一个的那个。

板子型号 选择正确。
主频选的72M。
Flash 选的 64M的。

以上信息核对了一遍 于所选型号应该是一致的.

STM32F103 之后的后缀不同,规格不同,但是我觉得这些基本的代码应该是可以兼容的。
 楼主| 发表于 2019-9-17 21:37 | 显示全部楼层
wwwusr 发表于 2019-9-17 20:48
最基本的语法,不用别的库
你的信息是用别的工具烧录时的信息吗?
我一般都用串口方式下载。。。 ...

关于别的工具:
因为arduino IDE 是自带一些库,有一些未知的东西我无法把控。
所以我拿keil IDE编译了一份 原始的代码 测试硬件,测试是正常的。

关于下载方式:我也想基于串口下载,串口下载有两个办法,第一个办法将模块BOOT0拉高,然后使用专门的Flash工具烧录 代码。

第二个办法 BOOT0拉低,也即正常模式。
这种方法需要板子烧录过BOOT,然后基于BOOT代码 使用串口或者USB烧录。
烧录后的代码 放置在 BOOT代码之后。

因为第一个方法比ST LINK 烧录麻烦,所以我放弃了。
第二个办法 我烧录的BOOT 似乎无效,具体原因不明,之后再看看吧,现在想解决串口无输出的问题....
 楼主| 发表于 2019-9-17 21:39 | 显示全部楼层
补充一个:我在其它编译器测试,使用的是源码,不是上面贴出的arduino代码。
 楼主| 发表于 2019-9-17 21:39 | 显示全部楼层
wwwusr 发表于 2019-9-17 20:48
最基本的语法,不用别的库
你的信息是用别的工具烧录时的信息吗?
我一般都用串口方式下载。。。 ...

我的信息是使用arduino ST LINK烧录的信息,信息是红色的字体。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:24 , Processed in 0.276836 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表