推荐阅读最新更新时间:2024-03-16 15:06
STM32启动过程与向量表
一.首先看一下一个典型的STM32程序的二进制文件: 注意开始地址的前2“字”,0x2000870,0x08000635. 二.在工程文件里,进入debug模式,点击 “RET”复位 发现MSP就是程序文件的第一个32bit内容,PC则是下一个32bit内容。注意0x08000635与0x08000634:加载到 PC 的数值是奇数( LSB=1) ,表明这是在 Thumb 状态下执行,因为Cortex-M3处理器不能执行ARM指令;另一方面, CM3 中的指令至少是半字对齐的,所以 PC 的 LSB 总是读回 0。 三.再看下STM32的启动文件下的中断向量表 事实上,可以明显地看出,STM32程序的文件的开始地址位
[单片机]
【STM32】寄存器位的操作方式
read / write (rw) 软件能读写此位。 read-only (r) 软件只能读此位。 write-only (w) 软件只能写此位,读此位将返回复位值。 read/clear (rc_w1) 软件可以读此位,也可以通过写’1’清除此位,写’0’对此位无影响。 read / clear (rc_w0) 软件可以读此位,也可以通过写’0’清除此位,写’1’对此位无影响。 read / clear by read (rc_r) 软件可以读此位;读此位将自动地清除它为’0’,写’0’对此位无影响。 read / set (rs) 软件可以读也可以设置此位,写’0’对此位无影响。 read-only write trigger
[单片机]
linux下STM32开发环境搭建
前言: 本文最终目的是在 ubuntu 16.04 系统下开发STM32。 用到了 STM32CUBEMX 去生成带有 Makefile 的代码,然后使用 gcc-arm-none-eabi 工具对程序进行编译。再通过 openocd 加 CMSIS-DAP的方式连接到目标板(这里是一块STM32F103C8T6)加下载程序。最终使用 GDB 工具进行调试程序。 安装 JAVA 环境 安装 STM32CUBEMX 是需要JAVA的环境的,下载的地址详见文首“参考”项。下载 linux 版本的压缩包。将其放到 linux 系统下进行解压,注意你文件放的路径。 1:使用下面命令打开 profile sudo vi /e
[单片机]
STM32通用定时器TIM实现PWM波配置步骤
//1、开启定时器时钟和需要用到的IO口 void Clock_Init(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);//因为准备把PB5口作为输出端口,所以接下来AFIO使能,如果使用默认的PA7 输 //出则不用使能AFIO,但需要使能GPIOA } //2、IO口并重映射TIM3 void GPIO_Out_Init(void) { GPIO_InitTypeDef GPIO_Init
[单片机]
STM32 串口简介
简介:串口作为 MCU 的重要外部接口,同时也是软件开发重要的调试手段, 其重要性不言而喻。STM32 的串口资源相当丰富的,功能也相当强劲。ALIENTEK 战舰 STM32 开发板所使用的 STM32F103ZET6 最多可提供 5 路串口,有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持 LIN、 支持调制解调器操作、 智能卡协议和 IrDA SIR ENDEC 规范、具有 DMA等。 串口设置的一般步骤可以总结为如下几个步骤: 1)串口时钟使能,GPIO时钟使能 2)串口复位 3)GPIO端口模式设置 4)串口参数初始化 5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)
[单片机]
STM32输入AB相脉冲的编码器程序
// STM32输入AB相脉冲的编码器程序 // 程序中使用TIM5计数器计数AB相脉冲,如果将TIM5修改成其他定时器也能适用。 // PA0和PA1分别作为A、B相脉冲输入 // 可以另外再使用一个定时器,定时读出脉冲数TIM5- CNT // 作者: bjtea // http://blog.csdn.net/bjtea/article/details/8528389 // 以下程序摘自本人做的一个项目,因此可以放心代码的使用 #include stm32f10x_tim.h void T5_Encoder_Configration(void) { GPIO_InitTypeDef GPIO_InitStructu
[单片机]
Windows下Keil MDK5配置STM32开发环境
Windows下使用Keil MDK5进行开发和编译, 配合ST-LINK工具进行烧录 stm32f103c8t6 参数 ARM 32-bit Cortex-M3 72 MHz maximum frequency 64k flash 20k ram LQFP封装48pin 安装说明 文件准备 mdk525.exe 不建议使用5.12等早期版本, 在更新时窗口容易卡, 且失败总会弹出需要手工消除. keygen2032 大部分找到的keygen, 有效期都是2020年的, 没法用, 必须要能生成2032有效期的版本 st-link驱动 https://www.st.com/zh/development-t
[单片机]
STM32操作 I/O 口的步骤
先来总结一下 STM32 操作 I/O 口的步骤(以精英板为例): ① 使能 I/O 口时钟,调用函数为RCC_APB2PeriphClockCmd(); ② 初始化 I/O 参数,调用GPIO_Init(); ③ 操作 I/O 口 看了STM32操作 I/O 口的步骤,是不是一头雾水,因为我们以前学习51单片机的时候,根本没有这么麻烦,I/O 想输入就直接读,想输出就直接赋值,串口、AD转化、外部中断等等也都是想用就用,不需要单独配置时钟。 51单片机的这种做法确实很方便,不需要有乱七八糟的设置就能让芯片跑起来,但是随之带来的就是所谓的功耗问题。换句话来说就是一些资源根本用不上,但是芯片却还给它分配资源,即增加了芯片的负担,
[单片机]