- 博客(26)
- 收藏
- 关注
原创 STM32 TIM输出比较、PWM波形
从上图输出比较通道中可以看到,REF输出之后还有一个极性的配置(图中2部分),所以使用PWM模式1的正极性和PWM模式2的反极性最终的输出是一样的。向下计数的情况下,CNT>CCR时,REF置无效电平,CNT≤CCR时,REF置有效电平。输出模式控制器的输入是CNT和CCR的大小关系,输出的是REF的高低电平,可以选择多种模式控制REF输出。PWM频率:PWM的一个周期始终对应着计数器CNT的一个溢出更新周期,所以PWM的频率就等于计数器CNT的更新频率,PWM频率的计算公式就是计数器的更新频率公式。
2024-06-01 22:59:50 500
原创 STM32 配置中断常用库函数
调用这个函数就可以根据这个结构体里的参数配置EXIT外设,初始化EXTI主要用这个函数,使用方法和GPIO_Init一样。if(EXTI_GetITStatus(EXTI_Line14) == SET)//判断所选定的中断标志位是不是为1.这个函数是用来软件触发外部中断的,调用这个函数,参数给一个指定的中断线,就能软件触发一次这个外部中断。//清除中断标志位函数。配置中断,调用这个函数可以配置AFIO的数据选择器,来选择需要的中断引脚。调用这个函数就可以把EXTI的配置都清除,恢复成上电默认的状态。
2024-06-01 22:59:03 373
原创 STM32 中断系统
另一种是,如果这个病人更加紧急,并且此时已经有人在看病了,那紧急的病人可以不等上一个人看完,直接冲到医生的就诊室里,让上一个病人先靠边站,先给紧急的病人看病,等他看完了,上一个看了一半病的病人再继续,上一个病人结束了,叫号系统再看看有没有人来。这种形式的优先级就是中断嵌套,决定是不是可以中断嵌套的优先级,就叫抢占优先级。中断定义:在主程序运行过程中,出现了特定的中断触发条件,这里的中断触发条件就是中断源,使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。
2024-06-01 22:58:23 617
原创 STM32 TIM定时中断设计
时基单元中关键寄存器参数ARR、PSC都有设置,但是这里没有CNT计数器的参数,CNT参数的配置可更具需要在函数 TIM_SetCounter 和函数 TIM_GetCounter 中操作。因为预分频器和计数器都有1个数的偏差,所以PSC和ARR两个值都要再减1,PSC和ARR的取值都要在0~65535之间,不能超范围。第6步:运行控制,整个模块配置完成后,还需要使能一下计数器,不使能计数器,计数器是不会运行的。运行控制,整个模块配置完成后,还需要使能一下计数器,不使能计数器,计数器是不会运行的。
2024-06-01 22:56:00 234
原创 STM32 配置TIM定时中断常用库函数
在初始化结构体里有很多关键的参数,如自动重装器的目标值和预分频值等,这些参数可能会在初始化之后还需要更改,以下函数可以方便更改这些关键参数。计数器的预装功能可以根据需要选择配置,调用这个函数,参数选择使能还是失能来控制计数器预装功能。TIM_ExtTRGPrescaler外部触发预分频器,这里可以对ETR的外部时钟再提前做一个分频。获取当前计数器的值,调用这个函数可以查看当前计数器记到哪里了,返回值就是当前计数器的值。给自动重装寄存器写入一个目标值,调用这个函数可以手动给一个目标值。
2024-06-01 22:55:26 594
原创 STM32 定时器TIM
可以选择通过ITR的这一路,这一部分的时钟信号是来自其他定时器的。在运行的过程中,计数值不断自增,自动重装寄存器中写入的值是固定的目标值,当计数值等于自动重装寄存器中的目标值时,也就是计时时间到了,就会产生一个中断信号,并且清零计数器,计数器自动开始下一次的计数计时。图中向上的折线箭头表示在它的位置处会产生中断信号,而计数值等于自动重装寄存器目标值时产生的中断一般称它为更新中断,在这个更新中断之后就会通往NVIC,就需要再配置好NVIC的定时器通道,这样定时器的更新中断就能够得到CPU的响应了。
2024-06-01 22:54:19 598
原创 STM32——理解中断与中断配置
比如一老师在教室里面给学生上课,课堂上的学生可能做出各种行为的动作,比如做笔记,打哈欠,翻书包,讲小话等,我们把这些行为统称为事件,其中有些行为老师往往只是视而不见,继续他的上课;类比我们平时生活中的状态,就像社会上有256个人,每个的级别都一样,估计你会眼花缭乱,解决这个问题的办法就是把这256级的中断分类归层,层级内再分子级的分层管理形式,达到压缩层级的效果。编码格式统一是一切的基础。若子优先级也相同,就去比较两个外设的硬件终端编号,即该中断在中断向量表中的位置,同样是编号越小,优先级越高的原则。
2024-06-01 22:49:43 474
原创 STM32 外部中断配置与中断函数设计
可使用GPIO_Init函数,函数具体介绍可见上一篇内容https://blog.csdn.net/Echo_cy_/article/details/134587440?配置AFIO,选择使用这一路GPIO,连接到后面的EXIT.可使用GPIO_EXTILineConfig函数配置AFIO外部中断引脚。在配置中断之前,先使用NVIC_PriorityGroupConfig函数指定中断分组,然后使用NVIC_Init函数初始化NVIC。第三步:配置AFIO,选择使用这一路GPIO,连接到后面的EXIT。
2024-06-01 20:02:03 351
原创 简易直流电子负载 电压测量及保护部分设计
导通之后,经R16和R18分压使得栅极电压为源极电压的一半(VG<VS),使得PMOS管导通,再通过R17和R20进行分压,数值设定为十分之一,采集到的电压送入ADS1256模块进行测量。当处于保护模式时,被测电源电压大于24V,经程序控制使得单片机输出电压由3.3V跳变到0V,使得BJT不导通。此时支路电流为0,栅极电压与源极电压相等(VG=VS),则MOS管不导通,起到了保护的作用。当处于工作模式时,由单片机输出3.3V电压到JP9端口,经过分压处理三极管基极的电压为3V。
2024-04-21 02:29:53 193 1
原创 简易直流电源 恒流源设计
题目要求被测电源的额定电压不小于30V,24V时过压保护,所以当电子负载流过最大电流为1A,电源电压为24V,NMOS管不加负载时对应的功率为23.9W,这时功耗非常大,加一个5.1Ω,20W的水泥电阻帮助减小5W左右的功耗。恒流源部分如图所示,采用压流转换器,将输入的电压转换成电流信号,电压信号由滑动变阻器先对其分压衰减再进入运放,可以稍微减小DA的纹波造成的影响,采用0.1Ω的康铜丝作为采样电阻,产生的电压差输入到ADS1256进行采集。其中UI为DA产生的电压,R16为用康铜丝做的采样电阻。
2024-04-21 02:20:04 263 1
原创 buck电路
完整的buck电路,在电源工作下,开关闭合,电源给电感电容负载供电,开关断开时,负载上电压在电容作用下缓慢下降,电流在电感作用下缓慢下降,并且从续流二极管缓慢流过,这样我们就可以得到任何低于电源的电压,只要控制开关不停的周期开启和关断,只不过电压其实是波动的,这个波动叫做电压的纹波,ripple,只要我们控制的开关足够快,就能够确保纹波在可接受范围内,也就可以把负载电压看作稳定的电压,实际上,我们实际工作中就是这样处理的,也就是buck降压电路的由来。改进前,在开关和电容之间加入电阻电路如图1-4所示。
2024-04-14 16:53:36 351 1
原创 16制作根文件系统镜像
制作根文件系统镜像1 BusyBox工具简介在制作文件系统的时候,我们需要使用“BusyBox 工具”,BusyBox最初是由Bruce Perens在199 6年为Debian GNU/Linux安装盘编写的。其目的是在软盘上创建一个可引导的GNU/Linux系统,做安装和救急盘。BusyBox是一个集成了三百多个最常用Linux命令和工具的软件。
2024-04-07 18:05:56 1036
原创 13-15
TCP编程需要用到俩个类:QTcpServer和QTcpSocket。udp不分客户端和服务器,只需要使用一个类QUdpSocket。完成一个TCP服务器和一个客户端。网络编程有TCP和UDP。qtimer:qt的定时类。qtime:qt的时间类。这节课我们做一个计时器。
2024-04-07 17:59:24 74
原创 打包QT程序
我们使用命令进到我们新创建的文件夹所在的路径,命令如下。先把图标加到工程所在文件夹。然后在pro文件里面添加。注意:图标的格式必须为.ico这个格式的,其他格式不行。1.我们把工厂切换到release模式,然后编译。格式:windeployqt exe文件的名称。2.找到release模式构建的文件夹。release模式:基本没有调试信息。debug模式:有很多调试信息。问题二:怎么打包和部署?
2024-04-07 17:57:39 207
原创 Qt学习T5
Tip:关键字能下拉出来的默认下来 ,能避免出很多编译错误。line edit 中 readonly 只读。currentindex 默认显示。3.qt下操作GPIO。1.qt下的串口编程。2.qt下的网络编程。步骤一:做好UI界面。步骤二:实现逻辑功能。
2024-04-07 17:55:33 206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人