开发板使用的是st官方的stm32F207ZG nucleo,遇到的问题是在keil中报错:

no target connected

到网上找答案,都是说gpio口的问题,让按着reset键改debug 的setting然后再download就好了,试了好久都没效果,遂放弃。还有的说可能是芯片没上电,我想,我这儿插着usb呢,咋会没电。

后来在一个群里和网友讨论到凌晨三点半,无果,最后推荐我试一下gnu 的toolchain,那样的话他对报错会熟悉一些,有可能可以搞明白,试过后,无果。

后来又下了stlink unity,连接时报错

can not connect target

但奇怪的是使用它更新固件时LD4会闪烁,我想这应该是在写入固件吧,说明我的连接没问题。

前前后后折腾了一周多。这里还是要吐槽一下st官方天猫店的售后,走投无路时去找了客服寻求技术支持,说好的完善的技术支持,进了群之后并没有人搭理我,我低三下四一遍遍的艾特,还是没人管我,这种服务你卖什么产品啊,真服了。

最后,山穷水尽之际,让我发现了板子的说明手册,找到了错误的根源,原来真的是没上电。

错误的根源就是,之前以为板子上的那些塑料制品是接口一类的东西,供插线用的,就随便插着玩了。看了说明手册后,才知道这个叫jumper,大概翻译为跳线?正是我把U5V位置的跳线拔走了,导致供电失败,pwr灯也没在亮了,本来是很明显的问题,不过我第一次用这个开发板实在是没注意到这一点,毕竟板子上光写pwr的地方好几个。总之,再更新了一下固件就完全恢复了,实在是虚惊一场。

说实话,发板子时就算不给纸质的说明手册,起码把官网的文档搞得规范一点,找起来也方便很多啊,官方版对小白太不友善了。我甚至是一开始一直纠结于国内产的开发板为什么都带一个一个调试器,后边才慢慢猜到stlink是被嵌入到开发板里来了,看了手册之后才明白整个开发板的左小部分就是stlink,这也解释了为什么上边用stlink unity更新固件时灯会闪烁了,因为确实连接了stlink只是没有连接芯片。

一下子之前网上看到的那些乱七八糟的答案就都明了了,download程序进去后reset按着也确实有反应了。大家新手入门买开发板的话还是找售后靠谱一点的吧,不然遇到问题实在太难受了,硬件问题总是千奇百怪,问论坛或者群里的人总归是效率太低,也不好定位问题,至于st 某猫旗舰店的技术支持人员,完全不尊重人,就不要指望了。

附上手册的下载地址:https://www.st.com/resource/en/user_manual/dm00244518-stm32-nucleo144-boards-stmicroelectronics.pdf

经此一次,十分体会到初学者的不易,分享这次经历供大家借鉴。我在软件编程和密码学方面还算有点经验,嵌入式刚刚开始,欢迎交流。

初试stm32嵌入式开发遇到的巨坑的更多相关文章

  1. 嵌入式linux和stm32嵌入式开发这两者之间有什么关联性

    对于更开始入坑的同学,可能也像我一样搞不清楚两者的区别与联系.现在结合知乎网上的相关资料发一篇文章来具体分析. 基于STM32的开发属于微控制器开发领域,主要开发工具是keil或IAR,这种开发更准确 ...

  2. STM32嵌入式开发学习笔记(一)

    本文中,笔者将介绍使用嵌入式开发工具Keil uVision5,使用C语言,对微处理器STM32F103C8进行嵌入式开发. 开发使用C语言,首先需要新建一个C语言文件,将其设为主函数的入口,因此,将 ...

  3. .net core 在 Docker 开发下的巨坑

    一,Docker 的安装 Windows 安装  Docker 官方文档: https://docs.microsoft.com/zh-cn/virtualization/windowscontain ...

  4. STM32嵌入式开发学习笔记(六):串口通信(上)

    本文我们将了解STM32与外部设备通过串口通信的方式. 所谓串口通信,其实是一个类似于计算机网络的概念,它有物理层,比如规定用什么线通信,几伏特算高电平,几伏特算低电平.传输层,通信前要发RTS,CT ...

  5. STM32嵌入式开发学习笔记(七):串口通信(下)

    下面我们进行几个串口通信的实际应用. 实验一:发信实验,让开发板通过串口向电脑发送信息: #include <stdio.h> #include <stm32f10x.h> # ...

  6. STM32嵌入式开发学习笔记(四):使用滴答计时器实现精准计时

    前面我们讲过,因为在STM32上没有系统时间的接口,因此无法调用sleep函数,在本文中,笔者将利用滴答计时器实现精准延时. 查阅技术手册,滴答计时器依赖于一个SysTick_Type类型寄存器,定义 ...

  7. STM32嵌入式开发学习笔记(三):使用按键控制小灯

    按键和小灯一样,也是通过GPIO外设与主板连接,也是通过GPIO_InitStruct类型结构体控制其工作. 查阅技术手册,按钮连接GPIOA控制下的管脚0. 但与之不同的是,按键是一种输入设备,输入 ...

  8. STM32嵌入式开发学习笔记(五):中断

    我们过去了解了用循环实现延时,或用系统滴答计时器实现延时,但这两种方法都有一种问题:会阻塞处理器的运行.下面我们学习一种不阻塞处理器运行其他事件的功能:时钟中断. 所谓中断,就是让处理器放下手头的事情 ...

  9. STM32嵌入式开发学习笔记(二):将功能封装为库文件

    将所有的函数都堆在main.c文件里不是好的选择,庞大的代码文件会是你维护的障碍,明智的做法是,一种功能封装到一个库文件里. 库文件就是你代码开始部分写的#include<xxxx.h>里 ...

随机推荐

  1. Docker 搭建 ELK 集群步骤

    前言 本篇文章主要介绍在两台机器上使用 Docker 搭建 ELK. 正文 环境 CentOS 7.7 系统 Docker version 19.03.8 docker-compose version ...

  2. 利用python画出动态高优先权优先调度

    之前写过一个文章. 利用python画出SJF调度图 动态高度优先权优先调度 动态优先权调度算法,以就绪队列中各个进程的优先权作为进程调度的依据.各个进程的优先权在创建进程时所赋予,随着进程的推进或其 ...

  3. 理解分布式一致性:Paxos协议之Generalized Paxos & Byzantine Paxos

    理解分布式一致性:Paxos协议之Generalized Paxos & Byzantine Paxos Generalized Paxos Byzantine Paxos Byzantine ...

  4. 在线图片资源转换成Base64格式

    function getBase64Image(img) { var canvas = document.createElement("canvas"); canvas.width ...

  5. 使用CXF开发Web Service服务

    1.使用CXF开发Web Service服务端 1.1 开发一个Web Service业务接口,该接口要用@WebService修饰 (1)创建一个Java项目MyServer (2)在MyServe ...

  6. CF--思维练习--CodeForces - 220C Little Elephant and Shifts (STL模拟)

    ACM思维题训练集合 The Little Elephant has two permutations a and b of length n, consisting of numbers from ...

  7. C++获取当前系统时间并格式化输出

    C++中与系统时间相关的函数定义在头文件中. 一.time(time_t * )函数 函数定义如下: time_t time (time_t* timer); 获取系统当前日历时间 UTC 1970- ...

  8. PinPoint APM搭建全过程

    Pinpoint简介 Pinpoint是一款对Java编写的大规模分布式系统的APM工具,有些人也喜欢称呼这类工具为调用链系统.分布式跟踪系统.我们知道,前端向后台发起一个查询请求,后台服务可能要调用 ...

  9. C. Helga Hufflepuff's Cup 树形dp 难

    C. Helga Hufflepuff's Cup 这个题目我感觉挺难的,想了好久也写了很久,还是没有写出来. dp[i][j][k] 代表以 i 为根的子树中共选择了 j 个特殊颜色,且当前节点 i ...

  10. Linux查看redis占用内存的方法

    redis-cli auth 密码info # Memory used_memory:13490096 //数据占用了多少内存(字节) used_memory_human:12.87M //数据占用了 ...