![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2126f45ca2c748b1bace1d6328553aa0.png)
1
-
- 启停
-
就开关呗
-
-
死区时间 MOS管 切换 需要时间 (控制IO翻转 の 时间)
-
半桥芯片 自带死区控制事件 520ns
-
半桥芯片 满足不了 就软件控制 时间
-
调速 -> 电压调节 -> PWM带宽调制(PWM 本质 一段时间内高低电平占比)
-
-
-
这里 就是上面给1 变成0(光耦反向) 下面 pwm 一会开一会关的感觉(这会不会 被死区影响)
- 就是调速 一个给 1 一个给pwm 反一下
- 这个互补输出 不是只能正反转???(感觉会不会在这里面 占空比 又会决定速度? 甚至决定方向)
2
- 定时器1通道1 和 互补通道
- sd 电机控制启停那个引脚
- 电源哪稿???
- 注意电源接线 以及 编码器的接线
3
- 先学定时器(高级的 好像才有互补)
- sd引脚低电平 有效 (刹车引脚?)
- 开启定时器 怎么是base 这不是基本定时器吗
先看引脚分配
- LED0 PB5
- key0 PE4 key1 PE3 key_up PA0
- 用的是之前互补输出的代码 PE15本来是刹车用的 这里正好给SD吧(SD在这当个普通IO就行 好像1)
- DMG474 才有的 F103 没第五个成员(有自己的复用 重映射方式)
- 他的思路 配置IO(474有第五个成员 直接配置复用了) 开启时钟 配置定时器 PWM输出 死区
- 他没用MSP罢了
- 这个是当普通IO口 用的 他直接复制的 LED的IO初始化
- 非要整成下拉 说 不希望电机一开始初始化就被启动 (好像不上拉就行)
- 让我对 输出 上下拉没影响 更😵了
- 切换方向前 要先关了 (前面没开过 应该是 第一次转就调用这个函数了 下面有开启PWM输出)
- 声明
main函数
- 再添加 KEY文件 分组
-
再改个小名 不叫atim了
-
死区时间 取决于DTG和时钟分频因子
-
DTG决定公式
4
- 和上面没啥大区别 就是整了上图下面两个函数
- 改一下文件夹 和分组 他这把电机定时器的放一块 其他和电机相关的 放电机里了
- 再改一下路径
- 分频系数没设 应该用的默认(DTG没变 那死区时间两实验不不一样了吗)
- 上面调用下面 居然能用 是因为在头文件里声明了吗???
-
不懂这为啥是float
-
main里面 定义个变量 用于pwm比较值 加减用
-
为什么PWM能调速 类似PWM驱动灯的时候 占空比越低 越暗吗(平均电压)
第一次遇到的问题
- 这个只有 0 的时候转
- 这两有一个low就转
- HAL_TIM_PWM_Start 没写(输出使能 OC到对应通道计数器使能 )(这个函数)也没pwm的事??
- 见网上说 CCR 设置成0 会出0 就算关闭了 设置成某个会出1(只有0的时候会动的原因)
- 了解了 那几种关 寄存器 tim——disable pwmstop 区别
- 然后按键又特别卡顿 有时候板子卡死了 再按没变化
- 为什么 按键 有时候按下不起作用啊 为什么用那个代码不起作用了 (忘写key_init了) 用别的文件 记得看看有没有 函数要用