打印
[其他ST产品]

stm32战舰之路

[复制链接]
楼主: hehhehee
手机看帖
扫描二维码
随时随地手机跟帖
61
hehhehee|  楼主 | 2021-12-30 16:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
3) 4 个独立通道(TIMx_CH1~4),这些通道可以用来作为:
A.输入捕获
B.输出比较
C. PWM 生成(边缘或中间对齐模式)
D.单脉冲模式输出

使用特权

评论回复
62
hehhehee|  楼主 | 2021-12-30 16:20 | 只看该作者
4)可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外
一个定时器)的同步电路。

使用特权

评论回复
63
hehhehee|  楼主 | 2021-12-30 16:21 | 只看该作者
5)如下事件发生时产生中断/DMA:
A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
C.输入捕获
D.输出比较
E.支持针对定位的增量(正交)编码器和霍尔传感器电路
F.触发输入作为外部时钟或者按周期的电流管理

使用特权

评论回复
64
hehhehee|  楼主 | 2021-12-30 16:22 | 只看该作者
十一、定时器之PWM输出

使用的是定时器3的通道2来输出PWM。

pwm:脉冲宽度调制。

使用特权

评论回复
65
hehhehee|  楼主 | 2021-12-30 16:39 | 只看该作者
原理:

使用特权

评论回复
66
hehhehee|  楼主 | 2021-12-30 16:41 | 只看该作者
ARR:最大值,计数器的最大值;

CCRx:捕获/比较值;

CNT:为计数器的值;

选择pwm模式共有两种:pwm1和pwm2,二者是有区别的,通过stm32参考手册可知是由几部分决定的,下面贴出通道1作为例子

使用特权

评论回复
67
hehhehee|  楼主 | 2021-12-30 16:42 | 只看该作者

使用特权

评论回复
68
hehhehee|  楼主 | 2021-12-30 16:43 | 只看该作者

使用特权

评论回复
69
hehhehee|  楼主 | 2021-12-30 16:44 | 只看该作者
1、当选择pwm模式1时,即OC1M[2:0]=110,采用向上计数,CNT < CCRx,输出电压有效,具体是高电平还是低电平有效呢,取决于CCER寄存器中的CCxP位,若该位为0,则高电平有效,即OC1输出高电平(1),若该位为1,则低电平有效,即OC1输出低电平(0),向下计数,也是CNT < CCRx有效;

使用特权

评论回复
70
hehhehee|  楼主 | 2021-12-30 21:47 | 只看该作者
2、当选择pwm模式2时,即OC1M[2:0]=111,采用向上计数,CNT > CCRx,输出电压有效,具体是高电平还是低电平有效呢,取决于CCER寄存器中的CCxP位,若该位为0,则高电平有效,即OC1输出高电平(1),若该位为1,则低电平有效,即OC1输出低电平(0)向下计数,也是CNT > CCRx有效;

使用特权

评论回复
71
hehhehee|  楼主 | 2021-12-30 21:49 | 只看该作者
配置步骤:

1、使能定时器3时钟,开启复用功能时钟AFIO。

      RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

      RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

使用特权

评论回复
72
hehhehee|  楼主 | 2021-12-30 21:52 | 只看该作者
2、将定时器3通道2(根据实际情况设置)映射到想要操作的IO口上,实际是想用定时器输出PWM来控制led,实现呼吸灯效           果,因此映射到LED0上。并设置LEDIO口为推挽复用模式

     GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);

使用特权

评论回复
73
hehhehee|  楼主 | 2021-12-30 21:54 | 只看该作者
3、初始化TIM3_CH2,设置自动重装值和预分频系数arr,psc

     TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

使用特权

评论回复
74
hehhehee|  楼主 | 2021-12-30 21:56 | 只看该作者
4、设置 TIM3_CH2 的 PWM 模式,使能 TIM3 的 CH2 输出。

     TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);

使用特权

评论回复
75
hehhehee|  楼主 | 2021-12-30 21:57 | 只看该作者
5、使能定时器,开启定时器

     TIM_Cmd(TIM3, ENABLE);

使用特权

评论回复
76
hehhehee|  楼主 | 2021-12-30 21:59 | 只看该作者
6、修改 TIM3_CCR2 来控制占空比。

     TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2);

使用特权

评论回复
77
hehhehee|  楼主 | 2021-12-30 22:00 | 只看该作者
十二、LCD学习

LCD这块需要掌握的内容比较多,也算是一个难点吧。

就我个人而言,掌握一个外设的操作,无外乎就是能够熟练使用它就可以了。

使用特权

评论回复
78
hehhehee|  楼主 | 2021-12-30 22:00 | 只看该作者
先贴一张真彩色表:

使用特权

评论回复
79
hehhehee|  楼主 | 2021-12-30 22:02 | 只看该作者
从大方面来说,学习LCD分为两个方面:熟悉TFTLCD的相关设置、FSMC(灵活的静态存储控制器)的原理,及配置。

使用特权

评论回复
80
hehhehee|  楼主 | 2021-12-30 22:04 | 只看该作者
1、关于TFTLCD来说,只要掌握液晶屏控制器的使用即可。以原子哥2.8寸LCD模块来说,使用的控制器是ILI9341。对于它,只要明白与相关操作指令即可。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则