一、入门篇
1、 蓝桥杯物联网开发 入门篇① 认识LoRa终端
2、 蓝桥杯物联网开发 入门篇② 开发环境搭建
3、 蓝桥杯物联网开发 入门篇③ 利用CubeMX配置一个MDK工程
4、 蓝桥杯物联网开发 入门篇④ 烧录程序
前言:
本小节会讲如何给LoRa终端主控芯片STM32L071KB烧写程序与进入调试模式窗口(具体调试 *** 作后面会讲到)
文章目录
基于蓝桥杯物联网的开发技术省赛教程
前言:
1、STM32烧写方式简介
SWD
JTAG
2、STM32烧写MDK配置
3、STM32烧写&Debug运行
1、STM32烧写方式简介
STM32系列芯片可以通过多种协议烧写代码常用的有 串口ISP(无法调试不做介绍)、SWD、JTAG;
SWD
SWD(Serial Wire Debug)是ARM公司提出的另一种调试接口,相对于JTAG接口,使用更少的信号线,一般限于ARM内核的微控制器。我们使用SWD这两条信号线进行烧写代码与调试:
SWDIO:串行数据输入输出,作为仿真信号的双向数据信号线,建议上拉;
SWCLK:串行时钟输入,作为仿真信号的时钟信号线,建议下拉;
JTAG
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 11491兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。(仅作为了解)
2、STM32烧写MDK配置
打开上一节生成的MDK工程
将开发板通过USB-A转micro与电脑连接 Win10系统驱动会自动安装 稍等片刻
读取不到IDCUDE 还可以检查5位拨码开关是不是都打开了
3、STM32烧写&Debug运行
但DAP-Link灯应该会熄灭 表明芯片正在运行 未进入调试事两个灯应该常亮 如果其中一个不常亮 表明驱动没有安装完成将stm32f407插入grbl即可连接grbl。
拥有(F407ZGT6)1MB内置flash,以及192+4KB的运行内存,足以满足大部分需求。但是实际运用中有128KB可以使用,并且这里保存着运行过程中系统所占用的空间,所以实际可用空间低于128KB。stm32f407的主频通过PLL倍频后能够达168MHz,而且芯片内置一个16MHz的晶振和一个32KHz的晶振,可以满足不同功耗的需求。f407有3个12位精度的快速ADC,每一个ADC都拥有多个通道,并且这些ADC可以联合使用,满足不同的需求。
f407也拥有2个12位的DAC。f407也拥有2个DMA控制器,每个控制器都有属于自己的通道,每一个通道也就不同的流,这样就可以实现各种外设到内存,内存到外设等等不同的需求。f407提供高达17个定时器,其中有2个32位的定时器,定时器主频可以达到168MHz。GRBL是一款免费的开源软件,用于控制机器的运动、加工制造物体或使物体移动,并在各种微控制器上运行。GRBL用于为数千种不同的CNC雕刻机、车床、铣床、激光切割机、写字,画图机器人、3d打印机等提供动力。它本质上是开源数控机床的标准。TM32微控制器系列--常见问题
(1) 已经发表的有关STM32的技术资料有哪些?
(2) STM32的数据手册和技术参考手册有什么分别?
(3) STM32有几种封装形式?是否符合RoHS的要求?
(4) 有哪些开发工具可以用于STM32的开发?
(5) 是否有简易的方法下载程序代码到STM32的内部Flash?
(6) 哪里有STM32上各种外设的使用例程和编程资料?
STM32微控制器系列--常见问题解答
(1) 已经发表的有关STM32的技术资料有哪些?
已经发表的有关STM32的技术资料有以下一些:
STM32F103xx增强型系列数据手册 英文下载 中文下载
STM32F101xx基本型系列数据手册 英文下载 中文下载
STM32F10xxx技术参考手册 英文下载 中文下载
STM32F10x闪存编程手册 英文下载 中文下载
近20篇STM32应用笔记 STM32应用笔记汇总
STM32选型手册 英文下载
STM32的函数库和演示程序:包括函数库、USB开发套件、评估板程序和Flash Loader等 点击这里浏览下载
(2) STM32的数据手册和技术参考手册有什么分别?
有关STM32的性能参数和使用方式的技术资料主要有两类,一类称为数据手册,另一类称为技术参考手册或简称参考手册。
数据手册是有关产品技术特征的基本描述,包含产品的基本配置(如内置Flash和RAM的容量、外设的数量等),管脚的数量和分配,电气特性,封装信息,和定购代码等。
技术参考手册是有关如何使用该产品的具体信息,包含各个功能模块的内部结构、所有可能的功能描述、各种工作模式的使用和寄存器配置等详细信息。
通常在芯片选型的初期,首先要看数据手册以评估该产品是否能够满足设计上的功能需求; 在基本选定所需产品后,需要察看技术参考手册以确定各功能模块的工作模式是否符合要求;在确定选型进入编程设计阶段时,需要详细阅读技术参考手册获知各项功能的具体实现方式和寄存器的配置使用。 在设计硬件时还需参考数据手册以获得电压、电流、管脚分配、驱动能力等信息。
(3) STM32有几种封装形式?是否符合RoHS的要求?
STM32产品系列目前有5种封装形式,它们分别为:
封装名称 管脚数目 管脚间距(mm) 封装尺寸(mm)
LxWxH
VFQFPN36 36 05 6x6x09
LQFP48 48 05 9x9x15
LQFP64 64 05 12x12x15
LQFP100 100 05 16x16x15
LFBGA100 100 08 10x10x15
所有上述封装形式均为ECOPACK封装并符合RoHS的要求。ECOPACK是ST的注册商标,详情请见ST的网站。
(4) 有哪些开发工具可以用于STM32的开发?
MDK+Jlink
MDK+ULINK2
点击这里查看ST网站上有关STM32开发工具的中文介绍。
这篇简介文章--《STM32F10x开发调试工具一览》--包含了在中国获得STM32工具的信息。
(5) 是否有简易的方法下载程序代码到STM32的内部Flash?
所有STM32产品都内置一个系统存储区,用于放置一段程序,这段程序可以通过STM32的USART1接口接收命令,并执行对内部Flash的擦除和烧写等 *** 作。这段程序可以通过设置芯片上相应管脚(BOOT1和BOOT0)的状态,在芯片复位后进入。
因为这段程序的功能是在芯片启动后通过USART加载程序到内置Flash存储器,所以称其为Flash Loader。所有STM32产品在出厂时都已预置了Flash Loader,用户只能通过设置BOOT1和BOOT0来使用它,而没有办法擦除或修改它。
使用Flash Loader的方法,请参考下述文件:
应用笔记: STM32F101xx 和 STM32F103xx系统存储器启动模式
Windows演示软件: STM32F101xx 和 STM32F103xx Flash加载程序演示
演示软件使用手册: STM32F101xx 和 STM32F103xx Flash加载程序演示
STM32中的Flash Loader使用USART1做为通信端口,它使用8个数据位、1个停止位和偶校验,具有自动波特率检测功能。
(6) 哪里有STM32上各种外设的使用例程和编程资料?
STM32的函数库中包含了许多例程,函数库和使用例程可以在ST的网站上免费下载。所有函数库和使用例程均提供C源程序,用户可以应用在任何的开发环境下。 说明文档 程序包
在ST的网站上可以免费下载“STM32 USB开发套件”。 说明文档 程序包
在ST的网站上可以免费下载“STM3210B-EVAL评估板软件”。 说明文档 程序包
在ST的网站上可以免费下载近20篇STM32应用笔记。 STM32应用笔记汇总如何使用STM32F4的DSP库
我们平常所使用的CPU为定点CPU,意思是进行整点数值运算的CPU。当遇到形如11+11的浮点数运算时,定点CPU就遇到大难题了。对于32位单片机,利用Q化处理能发挥他本身的性能,但是精度和速度仍然不会提高很多。
现在设计出了一个新的CPU,叫做FPU,这个芯片专门处理浮点数的运算,这样处理器就将整点数和浮点数分开来处理,整点数交由定点CPU处理而浮点数交由FPU处理。我们见到过TI的DSP,还有STM32F4系列的带有DSP功能的微控制器。前者笔者没有用过,不作评论,而后者如果需要用到FPU的浮点运算功能,必须要进行一些必要的设置。
首先,由于浮点运算在FPU中进行,所以首先应该使能FPU运行。在system_init()中,定义__FPU_PRESENT和__FPU_USED
/ FPU settings------------------------------------------------------------/
#if (__FPU_PRESENT == 1)&& (__FPU_USED == 1)
SCB->CPACR |= ((3UL<< 102)|(3UL << 112)); /set CP10 and CP11 Full Access /
#endif
这样就使能了FPU。
对于上述改变,当程序中出现这种简单的加减乘除运算FPU就起作用了。但是对于复杂的如三角运算、开方运算等,我们就需要加入mathh头文件。但是如果单纯的加入他,那么Keil会自动调用内部的mathh,该头文件是针对ARM处理器的,专门用于定点CPU和标准算法(IEEE-754)。对于使用了FPU的STM32F4是没有任何作用的。所以,需要将mathh换成ST的库,即arm_mathh。在该头文件中,涉及到另一个文件core_cmxh(x=0、3、4),当然了,如同STM32F1系列一样,在工程中加入core_cm4h即可。
到这里,算是全部设置完毕,之差最后一步,调用!但是别小看了这一步,因为如果调用的不正确,全面的设置就白费了。在使用三角函数如sin()、cos()时不要直接写如上形式,因为他们函数的名字来自于mathh,所以你调用的仍旧是Keil库中的标准mathh。要使用arm_mathh中的arm_sin_f32()函数(见Line5780,原函数见DSP_Lib\Source\FastMathFunctions),可以看到他利用的是三次样条插值法快速求值(见Line263 / Cubic interpolation process /)。
注意一下例外函数,sqrt(),在arm_mathh中为arm_sqrt_f32()。使用他的时候需要同时开启#if(__FPU_USED == 1) && defined ( __CC_ARM )才行,切记!还可以发现开方函数还有q15和q31之分,我想他们的区别就是精度的问题,但是他们没有应用FPU来计算,说白了就是利用0x5f3759df这个数进行快速开方STM32应用广资料多,性能较好,外设丰富,但是功耗相对高
CC2530就是给物联网设计的芯片,功耗极低,价格也相对低,关于物联网开发的资料是相对要多的
个人推荐是用CC2530STLink和STM8/32单片机的连接方式
zhenxing2000 >《待分类》
阅850转020201202关注
STLink是ST官方开发的单片机仿真工具,可以烧写程序、在线仿真,使用非常方便。STLink具有两种接口,分别为:1)SWD模式;2)SWIM单总线模式。SWD模式主要针对STM32系列的单片机,而SWIM单总线主要针对STM8系列的单片机。下面介绍STLINK和STM32单片机的连接方式。
STM32单片机可以通过三种方式烧录,分别是:1)JTAG模式;2)SWD模式;3)UART的ISP模式。STLink是通过SWD模式和STM32单片机进行烧录、仿真的。
SWD模式在和单片机连接时需要用到四根线,分别为:1)VCC电源线;2)GND电源地;3)SWDIO;4)SWCLK等。如下图所示。
打开APP查看高清大图
STM32单片机的SWDIO和SWCLK是和JTAG接口共用的。在使用跳线连接时,需要将STLINK的SWDIO和JTAG接口的的TMS连接;SWCLK和JTAG接口的TCLK连接,VCC和单片机的电源线连接;GND和单片机的GND连接。在JTAG接口上,各引脚定义如下图所示。
打开APP查看高清大图
由上可知,SWD模式仅有四根线即可实现连接。
STLink是开源工具,其硬件原理和程序固件都可以在意法半导体的官网找到,如果对此感兴趣的话,可以登录官网自己尝试设计一个STLink。准确的说,mbed OS是专门为物联网定制的一个 *** 作系统:
下面一段定义来自于ARM官网:
专为基于ARM Cortex-M处理器的设备所设计的免费 *** 作系统,将物联网所需的所有基础组件,包括安全, 通信传输与设备管理等功能,整合为一套完整软件,以协助开发低功耗,产品级的物联网设备并实现量产。 这套 *** 作系统将自2014年第四季度起作为初期开发工具提供给mbed合作伙伴,首批采用mbed *** 作系统的设备预计于2015年问世。
mbed官网是这样定义自己的:
We are creating a modern full-stack operating system that is designed specifically for ARM Cortex®-M-based MCUs
这是一个为物联网打造的 *** 作系统,不要把它想做可以和Android或IOS相抗衡的 *** 作系统,ARM提供一大堆套件,不得不说这些套件都很好很强大。
stm32就是arm的内核,可以使用啊
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)