stm32学习
lemonsea_
这个作者很懒,什么都没留下…
展开
-
stm32学习笔记 AFIO重映射功能 以TIM2的CH1可以从PA0挪动到PA15的引脚上距离为例
首先在STM32F103C8T6引脚定义的图里找到是否有可以复用的引脚,因为我们的TIM2_CH1_ETR的数据是在引脚PA0上显示,如果要换,根据此表只能换到PA15。因为举例子的是PA15其原本是JDTI调试端口,故第三行参数1是GPIO_Remap_SWJ_JTAGDisable。如果为其他可以参考下文。原创 2022-11-19 17:38:16 · 1863 阅读 · 0 评论 -
STM32 有关中断函数编程建议 OLED显示错误
1.在中断函数中,最好不要执行耗时间过长的代码,中断函数要简短快速。否则主程序会有严重的堵塞。2.尽量不要在中断函数与主函数调用相同的函数或者操作同一个硬件。为什么OLED会显示错误如果在主程序里和中断里都调用OLED。对于外部硬件不像CPU 有现场保护,中断返回后可能会出现问题。可以在中断里操作变量或者标志位,当中断返回时,再对这个变量进行显示和操作。例如 对射式红外传感器计次时,只操作变量,然后在OLED显示函数中调用返回CountSensor_Count的函数原创 2022-11-19 11:33:54 · 1246 阅读 · 3 评论 -
stm32学习 OLED调试和Keil调试模式
分别为复位,向下运行直到有断点,停止运行,向下一步,跳过此步,跳出函数跳到光标指定处。串口调试:使用串口通信,将信息发送致电脑。OLED通信协议一般是I2C通信。显示屏调试:显示屏接在单片机上。一.stm32调试方式有哪些?二.Keil调试模式点击进入调试模式原创 2022-11-18 22:36:24 · 419 阅读 · 0 评论 -
stm32学习笔记 GPIO用法总结
最近stm32f103的最小系统板到了,复习+实操了LED闪烁,流水灯,按键点亮LED,蜂鸣器等。浅浅总结一下。发光二极管脚长是正极,内部较小是正极为什么要模块化编程?模块化编程,尽量把每个硬件的驱动函数提取出来,封装在.c,.h文件中,简化主函数逻辑一些小Tip1.发光二极管脚长是正极,内部较小是正极2.插面包板插不上怎么办? 先用杜邦线插一些然后大力出奇迹原创 2022-11-18 21:36:32 · 911 阅读 · 0 评论 -
stm32学习笔记 ADC模拟数字转换器 ADC模数转化器详解
PS:PWM也是数字到模拟的桥梁,在直流电机调速这种大功率应用场景,选择PWM等效模拟量而非DAC1.ADC(Analog-Digital Converter)模拟-数字转换器2.ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁3 . 12位逐次逼近型ADC,1us转换时间输入电压范围:0~3.3V,转换结果范围:0~4095(3.3对应4095)4. 18个输入通道,可测量16个外部和2个内部信号源5. 规则组和注入组两个转换单元。原创 2022-11-15 22:21:42 · 5414 阅读 · 1 评论 -
stm32学习笔记 TIM输出比较 PWM驱动舵机(含代码)
OC(Output Compare)输出比较 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形 每个高级定时器和通用定时器都拥有4个输出比较通道 高级定时器的前3个通道额外拥有死区生成和互补输出的功能(1)输出比较电路可以通过比较CNT计数器和CCR捕获/比较寄存器的关系,来对输出电平进行置1,置0,反转操作,用于输出一丁 频率和占空占比的PWM(脉冲宽度调制)(2)有惯性的系统才能用PWM。原创 2022-11-15 21:35:01 · 638 阅读 · 0 评论 -
stm32学习笔记 TIM输入捕获
输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道。经过不同输入滤波器和边沿检测器后CH1和CH2的输入交叉连接因为:一个引脚的输入同时映射到两个捕获单元。分频后的信号可以触发捕获电路工作,每来一个触发信号,CNT的值就会向CCR转运。每来一个上升沿取CNT的值,自动存在CCR里,CCR捕获到的值,就是计数器N。ARR,CNT上限65535,频率太低会溢出。原创 2022-11-14 17:05:36 · 550 阅读 · 0 评论 -
stm32技巧 如何避免刚初始化就进入中断
预分频器有个缓冲寄存器,我们写的值只有更新事件时才会其作用。为了让值立刻起作用,默认在最后手动生成一个更新事件。副作用就是更新事件和更新中断同时发生。更新中断会使中断标志位,一旦初始化完成,更新中断会立刻进入。在通过定时器进行例如累加操作时,为避免刚初始化就进入中断可以加上这个函数。在TImeBaseInit 后开启中断前调用。原创 2022-11-13 22:17:45 · 827 阅读 · 0 评论 -
stm32学习笔记 TIM定时器中断1.定时器基本定时功能(含代码)
TIM定时器分四个部分RCC时钟树SystmInit函数外部晶振出问题会导致程序时钟慢了十倍RCC内部时钟。通用定时器 TIM2-5 APB1总线外部时钟ETR/TRGITRGI---外部时钟模式1,它还有触发输入和从模式ITR信号ETR,外部引脚---外部时钟模式2 配置极性选择,边沿检测,预分频器黄字是时基单元基本定时器 TIM6-7 APB1只能选择内部时钟72MHZ预分频器对时钟进行预分频,计数器自增计数,当计数值达到自动重装值时,计数值清零更新中断和更新事件预原创 2022-11-13 21:56:36 · 1285 阅读 · 0 评论 -
stm32EXTI外部中断笔记
中断:使CPU暂停当前正在运行的程序,从而去处理中断程序,处理完成后返回被暂停的位置继续运行。适合外部中断的--对于stm32来说,想要获取信号是外部驱动的很快的突发信号。没有定时器中断,主程序只靠Delay函数,才能实现定时功能。事件相应不会触发中断,触发别的外设,属于外设之间联合工作。---AFIO中断引脚选择。中断中中断去执行更高优先级的----中断嵌套。中断写在函数里,中断来临时由硬件自动调用,监测程序运行状态的中断---窗口看门狗。中断通道,由NVIC统一管理中断。---不用等上一个处理完。原创 2022-11-10 15:06:58 · 126 阅读 · 0 评论 -
stm32江科大自化协笔记01.GPIO
输入模式下可以读取端口的高低电平或电压,用于读取按键输入,外接模块电平信号输入(光敏,热敏模块),ADC电压采集,模拟通信协议接收数据。施密特触发器----设置阈值,高于上线输出高,低于下限输出低(用于整型)输出数据寄存器---普通IO口输出(按位与or按位或)上面导通,下面断开,上拉 ----默认高电平输入方式。推挽模式:P-MOS(上),N-MOS 均有效强推。下通上断 下拉 ------默认低电平。模拟输入---ADC,ADC接收模拟量。复用功能输入-----接收数字量。原创 2022-11-08 21:59:47 · 536 阅读 · 0 评论 -
RM电控笔记02 stm32外部中断实验
每个外设都可以中断,中断优先级越小越高。1.初始化要连接到EXTI的GPIO2.初始化EXTI用于产生中断事件3.初始化NVIC,用于处理中断4.编写中断服务函数原创 2022-10-23 17:08:18 · 383 阅读 · 0 评论 -
RM电控学习笔记 stm32入门小白必看(1)点亮LED灯 如何查看定义 Keil5调试方式
不允许在一个.c文件中有两个相同的.h文件所以需要有这三句话并且把引用的头文件放在相应位置上。2.在本地文件夹中创建的.c文件需要从keil5中添加.h文件所在的文件夹需要被添加到路径中。3.点击魔法棒如图勾选后重新编译,选择要查看的函数,按F12或fn+F12查看定义。原创 2022-10-17 22:08:35 · 316 阅读 · 1 评论