推荐阅读最新更新时间:2024-03-16 16:15
STM32笔记(五)---中断应用
一、异常类型 1-1 定义说明 F103 在内核水平上搭载了一个异常响应系统, 支持为数众多的系统异常和外部中断。其中系统异常有 8 个(如果把 Reset 和 HardFault 也算上的话就是 10 个) ,外部中断有 60个。除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。有关具体的系统异常和外部中断可在标准库文件 stm32f10x.h 这个头文件查询到,在 IRQn_Type 这个结构体里面包含了 F103 系列全部的异常声明。 表格 1 系统异常清单 二、NVIC简介 2-1 定义说明 NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。但是各个芯
[单片机]
基于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
[单片机]
STM32在Keil MDK5环境下RAM上代码调试
步骤与图示: 1.先给个CPU的数据,需要注意的是三个红圈的地方,架构,型号,Flash和SRAM大小如图1 (STM32F107VC 256KB FLASH,64KB SRAM) 图1 2.Target的设置 1)勾上可以用微库,减小生成代码的大小 2,3)分别定义ROM区位置及大小和RAM区位置和大小。在这里需要说明的是,Cortex-M3的架构有4G的寻址空间,而Flash的起始地址在0x08000000,RAM地址在0x20000000,在这里进行了第一次相关地址的更改;如图2 0x1000为4K,这里的0xc000则为48K的ROM分配;RAM的为16K;基本上移植个uCOS-II都够用了 图2
[单片机]
关于STM32 NVIC配置的解释
大部分学习用的开发板在配置各个外设的中断优先级时,习惯在每个外设的初始化文件里都进行NVIC group配置,例如在ADC和Usart都有NVIC的配置如下: ADC中: void ADC_NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel =ADC1_2_IRQn; //开启ADC_Channel8中断 NVIC_InitStructure.NVIC_IRQChannelPree
[单片机]
STM32-PWM输出
脉冲宽度调制,简称PWM。是一种利用数字信号来进行模拟信号的输出,拥有多种模式。主要的原理就是利用数字信号的高低电平的周期性变化来改变输出电压的平均值。从而达到模拟信号的输出模式。主要引用于电机调速,调光灯电路控制中。 在STM32中拥有多路PWM信号。每一个定时器的输出引脚都可以设置成相应的PWM信号的输出。PWM信号主要的参数有两个,周期的占空比。周期主要是由对应的定时器来确定。占空比就是PWM输出高电平的时间。假设现在定时的周期为2MS,在2MS中通过设置其中1MS引脚输出高电平。这样就可以说这个PWM的占空比为50%。 在程序运行中可以使用TIM_SetCompare1()来改变相应的占空比。这样就可以实现
[单片机]
STM32按键总结(低电平有效及上升沿有效))
低电平有效的按键 #define KEY1 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10)//读取按键0 #define KEY2 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)//读取按键1 #define KEY3 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2)//读取按键2 #define KEY4 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_11)//读取按键3(WK_UP) #define KEY5 GPIO_ReadInputDataBit(GPIOC,GPIO_Pi
[单片机]
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速成笔记(3)—按键检测
一、按键 检测 原理 按键检测原理比较简单,按键按下和不按下,其连接引脚的电平是不一样的,按键检测正是通过检测按键引脚的电平变化来实现的。比如按键未按下时引脚电平为高电平,按键按下后为低电平。我们在检测按键时只需要检测按键引脚是否变为低电平来确定按键是否按下。 二、 硬件 连接 按键的硬件连接决定了我们在配置按键IO时IO的状态。以我们使用的普中核心板为例,上面有三个按键 普中核心板按键硬件电路图 其中K1一端接VCC,另一端接单片机。K2和K3一端接地,另一端接单片机。硬件电路不同,导致他们在进行按键检测时IO的配置不同。 针对K1这种按键电路,按键按下时, 单片机 的引脚接到VCC,因此在未按下的情况下该引脚的默认电平
[单片机]