STM32ADC独立模式单通道采集实验 本次实验用的板子是STM32F103C8T6,使用标准库开发,使用ADC1的通道1即PA1口采集k一个502可调电阻动触点上的电压,VCC是3.3V,使用串口3打印信息显示在上位机串口助手上。本次实验只是为了说明ADC 的工作原理和底层寄存器的配置。代码和所用资料放在下面的链接里面了。
STM32F103C8T6实时时钟RTC STM32F103C8T6外部低速时钟LSE(一般为32.768KHz)用的引脚是PC14和PC15,所以这两个引脚一定不要再外接其它的电路,比如按键、LED灯之类的,会导致LSE时钟频率出错甚至不起振。RTC内的CNT计数器就可以用来存储时间戳,然后在软件内将时间戳转换为日历时间。
STM32定时器输入捕获应用实例:红外遥控 接收完4字节后,做数据校验,判断用户码的两个字节是否为遥控器手册上写的字节,判断数据码codeBuf[2]和codeBuf[3]是否互为反码,都成立表示codeBuf[2]确实是遥控码值。根据ir_drv.h头文件里的的API接口函数原型,我在ir_drv.c中的任务就是实现红外按键的码值获取,而红外遥控发送的NEC协议由引导码+用户码+数据码组成,引导码9ms+4.5ms是固定的,用户码是用于识别不同厂家的遥控器防止干扰,数据码就是我们想要获取的按键码值。1、按下按键的1,蓝色灯亮,按下按键2,蓝灯灭;
STM32定时器输入捕获测量周期 使用的IO资源:1、定时器1的输出比较通道2,PA8输出2KHz,即周期500us,占空比250us的pwm信号2、定时器2的输入通道2,PA1接收此PWM,捕获通道2捕获周期3、串口3打印信息实现现象:1、串口打印PWM的周期数据,显示在串口助手。备注:1、如果使用软件清除CNT计数器则周期测量有1us误差;2、如果使用硬件清除CNT计数器则周期测量误差很小;仅提供输入捕获文件的代码,如下所示。
STM32定时器:PWM输入模式测量周期、脉宽 STM32F103C8T6,标准库,使用定时器2的通道2即PA1产生2KHz频率,250us脉宽的PWM信号,使用定时器1输入通道1即PA8接收这个PWM信号,捕获通道1捕获周期,捕获通道2捕获脉宽。使用串口3打印信息,显示到串口助手。只提供定时器PWM输入捕获驱动代码,如果需要完整代码,评论区私信。
STM32外部中断 下图生动形象地说明了中断是什么意思。在STM32F10X用户手册的第九章有详细地叙述中断,表9.1.2中断和异常向量表,阴影部分是内核异常,其它的是外设中断优先级是指硬件默认优先级,数字越小级别越高;优先级类型,固定表示优先级不可在软件里设置;这个地址是四个字节的,用来保存中断服务函数的地址,也就是说RESET复位的地址0x0000 0004~0x0000 0007这四个字节里保存的就是函数名(地址)Reset_Handler。
使用简单的git指令管理代码 什么是Git工作目录,举个例子, 在桌面新建一个文件夹:GitTest。在文件夹内右键选Git Bash Here。输入指令git init创建本地版本库,git init此时在GitTest内会生成一个.git文件夹,那么在GitTest内除了.git的其它内容都是工作目录。
STM32无法烧录程序,出现Flash download failed - Target DLL has been cancelled 如果你是使用的STM32cubeMax自动生成代码,并且你的板子之前都可以正常烧录程序,但是就在烧录了STM32cubeMax自动生成的代码,你的板子无法再使用jlink或者ST-link烧录程序了,那么极有可能是程序中隐藏了一条代码关闭了SW和JTGD调试。①BOOT0拉低(BOOT0下拉从FLASH启动),点击KEIL的DOWNLOAD前先按下板子上的复位键不放,然后。之后你的板子就可以正常使用jlink或stlink等烧录程序了。(2)之后你需要想办法把你修改过的代码烧进你的板子里。