禾博电阻欢迎您!
接触电阻_热敏电阻_压敏电阻_光敏电阻-禾博电阻
客服热线
c语言的程序怎么烧进stm32里?

c语言的程序怎么烧进stm32里?

作者:admin    来源:未知    发布时间:2024-04-15 10:27    浏览量: 标签: 怎么 程序 语言 stm32 烧进

  

c语言的程序怎么烧进stm32里?

  

c语言的程序怎么烧进stm32里?

  

c语言的程序怎么烧进stm32里?

  STM32是可编程器件,用C语言和汇编都可以,由于C语言可读性强、移植方便,现在用C语言编程成为主流,C语言编号的hex需要下载到单片机中,单片机才能执行,这个过程叫做程序的烧录或者下载,需要专用工具的支持。对STM32而言,有三种方法可以烧录程序,分别介绍。

  JTAG是一种标准的程序烧写接口,许多比较高端的芯片都支持该接口,该接口有10针,14针,20针等,但是用到的引脚有六个,分别为:TCK,TMS,TDI,TDO等,另外两根线是TRST和RESET。接口如下所示。

  对于STM32而言,上图中的几个上拉电阻可以省略不用,STM32在手册上已经描述了单片机对应的引脚内部有上拉电阻,这种方式可以通过JLINK来实现烧写。该方式可以实现在线调试,提高了查找问题的效率。

  SWD方式主要用到两根线:SWDIO和SWCLK,该接口一般和JTAG接口共用,接口电路如下所示:

  这种烧录方式可以通过JLINK、STLINK等工具实现。该方式可以实现在线调试,大大方便了查找问题的效率,而且节省单片机引脚,接口小,节省PCB空间。

  STM32单片机可以通过UART串口引脚下载程序,这种方式使用的是单片机的串口,即TXD和RXD两根线,所使用的工具是USB/TTL,如下图是实现自动ISP下载的电路图。

  上图看起来复杂,其实USB/TTL芯片不用画在电路板上,使用额外的工具即可,在连接的时候要使用交叉连接,而且还要选择单片机的启动方式,即BOOT0和BOOT1的状态。该方式下载程序虽然方便,但是无法实现在线调试。与前两种方式相比,该种方式比较适合量产。

  通过以上三种方式即可实现将C语言程序烧写进STM32里,从而让单片机执行程序代码。

  以上就是这个问题的回答,感谢留言、评论、转发。

  更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。

  ·

  首先你要弄清楚一点的就是,C 语言程序最终都需要通过一个叫编译器的东西转化为汇编语言,C 语言能跨平台的原因也在此。当你用 C 语言写好你的程序之后,如果你想把它运行在 51 单片机中,那么你就要通过具备 51 内核编译能力的编译器去编译成 51 汇编代码,这样你的代码才能正确运行,而如果你要运行在 STM32 中,那就需要 ARM 内核编译器去编译了。

  说回如何烧写的问题。目前我知道有两种常用下载方式:1、串口 2、调试器。

  首先说下简单的串口下载,据我所知,这是所有 STM32 单片机都具备的下载方式。它的下载方式很简单,就是通过一个软件,比如 mcuisp.exe,将类似 bin、hex 这样编译好的文件通过串口的方式将数据传输至 STM32 中 (掉电不丢失),然后再执行你的代码。优点是只要有一个串口和下载软件就能下载了,缺点是下载速度慢,并且不能在线调试。

  在这里简单说一下 STM32 串口下载的原理。STM32 在生产的时候会烧录一段程序,可以称它为 Bootloader 程序,这个程序在一般情况下是不会运行的,需要通过设置一些引脚(BOOTx)的状态去激活它。一旦这段代码运行起来了,就会一直检测其中一个串口的状态信息,一旦识别到了需要下载的条件,就会按照它自己的通信协议完成数据的传输,最终将整个文件代码保存在单片机里面。下载完毕之后,你需要让它退出这种模式,让它回到正常的程序运行状态才能执行你刚才下载好的程序(还是通过设置 BOOTx 引脚的状态)。

  现在说下第二种下载方式,下载器。

  下载器的类型有很多,有 J-LINK, ST-LINK,CMSIS、ULINK等等,看 MDK 中的下载列表就知道了。

  相当丰富。使用调试器下载最大的好处就是可以在线调试,实时观察程序的运行情况和数据变化,相当不错。

  调试器下载的方式也是有很多种,比如像上面的,直接通过 MDK 集成软件下载,很方便。这种方式下载的是

  还有就是通过专业的下载工具下载,比如 ST-LINK Utility(利用 ST-LINK下载器下载),这种下载工具下载的文件类型就比较丰富了,可以是

  其实除了上面两种常见的下载方式,有些类型的 STM32 单片机还集成了 CAN、USB 等下载方式,感兴趣的可以去 ST 官网查找相关的笔记。

  ·

  目前针对stm32烧录,我知道的有三种烧录形式,

  分别是SWD接口,Jtag接口,串口烧录,

  其中前两种比较常见。

  接下来主要讲解下SWD和Jtag接口,

  SWD 接口,是需要五个烧录io分别是 VCC

  注意 :此处必须加NRST,如果不用这个引脚,会容易烧录不正常。

  JTAG烧录,使用了TCK,TMS,TDO,TDI,TRST,RESET,vcc,GND

  在keil中如何选择位置

  首先选中需要设置的工程—>鼠标右键-弹出Options for target "工程名"

  选中 Debug-> 选中jlink-点击Settings 弹出框中,选中jtag或者SWD

  生产过程中,一般不jlink 在线烧录,为了能够可批量,高效率的烧录程序,选择离线烧录器,常见官方的离线烧录器,正点原子也有离线使用的烧录器,可以在淘宝搜索下stm32 离线烧录器 一般配套有对应软件,可以按照对应的操作说明 选择JTAG或者SWD

  编译好程序,将bin或hex存入tf卡。煤气灶开火,将STM32与TF卡重叠,一起放在火眼上,注意一定要放平,建议选择ST官方烧写专用煤气灶和专用烧写煤气。根据STM32型号和flash容量调节火力和烧入时间,检验完成即可烧写成功!

  望采纳

公司地址:

禾博电阻提供接触电阻、热敏电阻、压敏电阻、光敏电阻等,并分享电阻的行业动态、市场分析、技术资料、方案应用等信息,给电阻产品行业的朋友提供帮助。 目前公司共划分为:财务部、行政企划部、技术部、市场部四个部门...

Copyright © 禾博电阻 版权所有