关于STM32的这几个寄存器,你知道吗?
1Flash容量寄存器 这个问题是之前有人问过,说:我的芯片被抹掉,看不清了,我怎么知道这块芯片容量大小? 解决办法: 1.通过读寄存器 在STM32的“参考手册”中有Flash size data register这么一个寄存器(一般在手册最后),明确写了寄存器的基地址。 提示:不同芯片型号,可能这个寄存器地址不同。比如F103的基地址为:0x1FFFF7E0。 是一个16位的数值,出厂写入,程序只能读取。读取方法很简单,可以如下: uint16_t Flash_size; Flash_size = *(uint16_t *)0x1FFFF7E0; 说到这里,可以参看我之前分享的一篇文章《 你的STM32
[单片机]
STM32启动文件详细解析
一、STM32启动文件详细解析 STM32启动文件详细解析(V3.5.0) 以:startup_stm32f10x_hd.s为例 view plain copy ;******************** (C) COPYRIGHT 2011 STMicroelectronics ******************** ;* File Name : startup_stm32f10x_hd.s ;* Author : MCD Application Team ;* Version : V3.5.0 ;* Date : 11-March-2011 ;* De
[单片机]
基于STM32单片机利用ST库函数设置Systick
Systick是STM32中特有的系统时钟SysTIck有两个功能:1.可以产生精确延时;2.可以提供给系统一个单独的时钟节拍。一般延时程序: DELAY(N) { for( i=0 ; i《=x ; i++ ) ; } 对于STM32系列的微处理器中,执行一条指令只需要几十ns,进行for循环时,要实现N毫秒延时,那么x的意义非常大,而且由于系统频率的宽广,很难计算出延时N毫秒的精确值,那么在一些高速电路中,是不允许的,容易出现问题,很难查找出来。尤其在液晶驱动中,延时要求非常精确。针对STM32的处理器中,需要重新设计一个方法实现该功能,来代替DELAY(N)延时; cortex-m3中包含了一个SysTI
[单片机]
STM32-库开发-地址映射
1.stm32有AHB,APB2,APB1总线。 其中APB2外设地址空间是从0x40010000至0x40013FFF地址。第一个地址称为基地址。 2.参考手册中端口配置寄存器有地址偏移0x04,所以GPIOC_CRH地址为GPIOC_BASE+0x04 GPIO_TypeDef结构体!,里面的CRL,CRH,IDR等共7个变量,之间0x04地址偏移,以后修改GPIO寄存器: GPIO_TypeDef * GPIOx; GPIOx = GPIOA; GPIOx- CRL = 0xffffffff; 3.配置GPIO的寄存器要开启外设时钟!区别于51单片机! 注意使用不同的外设都要开启相应的时钟 库函数的实现原
[单片机]
stm32开发板开发笔记(2)-开发板jlink烧录
开发板上留出了jtag烧录口,引出了TCK测试时钟,TDI测试数据串行输入,TMS测试模式选择,TDO测试数据串行输出, NJTRST 测试系统复位信号 如图所示: nRST是接芯片的复位脚,板上的实物是20针的JTAG接口 20针JTAG接口 1 VTref 目标板参考电压,接电源 2 VCC 接电源 3 nTRST 测试系统复位信号 4、6、8、10、12、14、16、18、20 GND 接地 5 TDI 测试数据串行输入 7 TMS 测试模式选择 9 TCK 测试时钟 11 RTCK 测试时钟返回信号// 这个没有接 13 TDO 测试数据串行输出 15 n
[单片机]
STM32 NVIC 中断
***************************** STM32 NVIC 中断 一、STM32 的中断分组:STM32 将中断分为 5 个组,组 0~4。该分组的设 置是由 SCB- AIRCR 寄存器的 bit10~8 来定义的。具体的分配关系如表所示: 组…,…,. bit 分配情况 …,…,…,…分配结果 0 …,…,…,…,…,…0:4 …,…,…,…0 位抢占优先级,4 位响应优先级 1 …,…,…,…,…,…1:3 …,…,…,…1 位抢占优先级,3 位响应优先级 2 …,…,…,…,…,…2:2 …,…,…,…2 位抢占优先级,2 位响应优先级 3…,…,…,…,…,…3:1…,…,…,… ,3 位抢占优
[单片机]
基于stm32的自定义HID设备开发与上位机通讯实现
1.HID通信的实现 2.使用USB外设 3.使用HID设备 4.配置时钟 5.USB中断放低点 6.生成代码,替换配置描述符 /* USB HID device Configuration Descriptor */ __ALIGN_BEGIN static uint8_t USBD_HID_CfgDesc __ALIGN_END = { 0x09, /* bLength: Configuration Descriptor size */ USB_DESC_TYPE_CONFIGURATION, /* bDescriptorType: Configuration */ USB_HID_CO
[单片机]
基于STM32F100VBT6的32位MCU开发设计方案
STM32F100VBT6采用ARM Cortex™-M3 32位RISC内核,工作频率24MHz,集成了高速嵌入式存储器(闪存高达128kB、SRAM高达8kB)以及各种增强外设和连接到两条APB总线的I/O。所有器件提供两个I2C、两个SPI、一个HDMI CEC和多达3个USART标致通信接口以及一个12位ADC、两个12位DAC和六个通用16位定时器和PWM定时器。主要用在控制和用户接口、医疗设备、PC和游戏机外设、GPS平台、工业应用、PLC、逆变器、打印机、视频通信和HVAC等。 图1 STM32F100xx系列方框图 STM32F100xx简介 低/中密度、基于ARM的高级32位MCU,带有16 kB ~128
[单片机]