推荐阅读最新更新时间:2024-03-16 15:42
在MDK开发环境下的STM32工程结构
最近迫于找工作的压力,我不得不加快嵌入式学习的步伐,不再和AVR、PIC8位机纠缠了,开始学习32位单片机。开发环境如下:STM32F103RBT6+MDK+JLINK。今天打开了第一个程序:流水灯。程序内容很简单,只是这个工程的结构看上去很是复杂,不像之前一个工程里就那么几个C源程序和头文件。因此,今天很有必要讨论一下这个工程的结构,相当于一个程序的骨架。 其实认真研究一下,会发现例程工程和之前我们使用编写51单片机程序用的工程大同小异。至于刚开始感觉这个结构很复杂,我的原因是之前编写51程序是将所有的代码几乎都写进主源程序里,头文件和多个源程序的使用很少。开发STM32时,因为有了官方的封装的外围器件驱动代码库,这样我就不得
[单片机]
STM32单片机的外部时钟晶振该如何选择频率
芯片的主晶振频率范围一般来说在数据手册(Datasheet)和技术参考手册(Technical Reference Manual)中都有介绍。 你提到的时钟先分频再倍频,这个需要深入到STM32的内部去一探究竟了,在其技术参考手册的第7.2节Clocks的一开始有一个表格,时钟树(Figure 8. Clock tree),它完全地列出来STM32这个芯片内部各个模块的时钟来源以及相关的从属关系。 在这个图的正中央,有一个核心时钟:SYSCLK,它最大频率是72MHz,它的时钟信号通过选择器SW可以由PLLCLK提供(也可由HIS、HSE提供)。 PLL,毫无疑问,它是用来倍频的,可以*2,*3,*4……*16,它的时
[单片机]
STM32开发笔记57: 复位电路设计
本篇文章针对所有的STM32芯片,网上有不少文章叙述了有关STM32复位电路的相关内容,也有很多推荐电路,例如ALIENTEK给出的复位电路,如下图所示。 不过还有一些推荐电路,不需加上拉电阻,或者电容也不加,那到底应该如何设计呢?还需看一下官方手册的推荐电路,如下图所示。 可看到,复位电路具有内部上拉电阻,外部只需接0.1uf电容即可,不需在外部电路上拉10K电阻,上拉后只会使上拉电阻变小,减小复位时间,或会导致复位不正常。内部上拉电阻阻值和其它参数如下表所示,供参考。
[单片机]
STM32 USART串口DMA接收和发送模式
串口DMA发送: 发送数据的流程: 前台程序中有数据要发送,则需要做如下几件事 1. 在数据发送缓冲区内放好要发送的数据,说明:此数据缓冲区的首地址必须要在DMA初始化的时候写入到DMA配置中去。 2. 将数据缓冲区内要发送的数据字节数赋值给发送DMA通道,(串口发送DMA和串口接收DAM不是同一个DMA通道) 3. 开启DMA,一旦开启,则DMA开始发送数据,说明一下:在KEIL调试好的时候,DMA和调试是不同步的,即不管Keil 是什么状态,DMA总是发送数据。 4. 等待发送完成标志位,即下面的终端服务函数中的第3点设置的标志位。或者根据自己的实际情况来定,是否要一直等待这个标志位,也可以通过状态机的方式来循
[单片机]
基于Cortex-M3的STM32微控制器处理先进电机控制方法
变频器的问世和先进的 电机控制 方法让 三相无刷电机 (交流感应电机或永磁同步电机)曾经在调速应用领域取得巨大成功。这些高性能的电机驱动器过去主要用于工厂自动化系统和机器人。十年来,电子元器件的大幅降价使得这些电机驱动器能够进入对成本敏感的市场,例如:家电、空调或个人医疗设备。本文将探讨基于ARM的标准微控制器如何在一个被DSP和FPGA长期垄断的市场上打破复杂的控制模式,我们将以意法半导体的基于Cortex-M3内核的STM32系列微控制器为例论述这个过程。 首先,我们回顾一下电机控制的基本原理。在电机控制系统内,为什么处理器非常重要?我们为什么需要非常好的计算性能?毕竟,Nicolas Tesla在一个世纪前发明
[安防电子]
基于STM32、ESP32,钢铁侠打造机械臂设计
一直是稚晖君很感兴趣的一个方向,而在中他认为最实用的非臂莫属。正巧,半年前稚晖君偶然淘到了一台二手机械臂,这让他有些激动。然而,喜悦之情还没持续多久,稚晖君就有些不开心了:在他花了一些时间将这台机械臂研究透彻,并自己开发了一套 K 后,感到了一点不妙:“这个手子不太行啊”。
稚晖君表示,目前市面上的机械臂都不够酷,因此决定要自己造一台很酷的机械臂,并将其取名为 Dummy(取自钢铁侠中一只名为 Dummy 的机械臂)。为此他总结了一份架构设计图(由于该图较长,中为滚动呈现,因此本文仅截取部分):
准备
既然是要设计一台机械臂,那就需要从硬件开始准备,毕竟无论软件再重要,也需要一个优质的载体才
[机器人]
STM32学习之:时钟频率
******************************** 本学习笔记基于STM32固件库V3.0 使用芯片型号:STM32F103 开发环境:MDK ******************************** 第一课 时钟频率 STM32F103内部8M的内部震荡,经过倍频后最高可以达到72M。目前TI的M3系列芯片最高频率可以达到80M。 在stm32固件库3.0中对时钟频率的选择进行了大大的简化,原先的一大堆操作都在后台进行。系统给出的函数为SystemInit()。但在调用前还需要进行一些宏定义的设置,具体的设置在system_stm32f10x.c文件中。 文件开头就有一个这样的定义: //#defi
[单片机]
使用STM32点亮一颗LED实验
本次实验系统环境 Matlab版本: 2021b 系统环境 :Win10专业版 模型与原理图 simulink模型如图5.1所示,实验现象PB8以0.5S周期反转,PB9以1S周期翻转闪烁,本次实验电路原理如图5.2所示,实验所使用的下载器为STLINK 2V1版本,下载器自带一个串口,完整实验电路板如图5.3所示 图5.1 两颗LED闪烁simulink模型 图5.2 LED闪烁电路图 图5.3 实验开发板 基础模型介绍与分析 “Digital Write”模型用于控制I/O口作为普通输出用,双击模型可更改引脚编号,如图5.4所示其引脚对应STM32的PB8端口,例如想使用PA5引脚时,可通过将其改为“PA_
[单片机]