正文
设置RCC
设置高速外部时钟HSE 选择外部时钟源
时钟源设置(80MHZ)
省时间可以直接到图中部分输入对应的频率,然后会询问你需不需要自动配置,回车就行
项目文件设置
关键配置:
如下是定时器配置
设置时钟源为内部时钟
启动定时器2的通道2的PWM输出模式
(虽然输出比较模式也能输出可变的PWM,但是需要利用中断,会加大代码复杂度)
将分频值设置为800(最好是800-1),自动重装值为100(最好是100-1)
打开自动重装载使能,否认修改频率或者占空比时可能出现pwm输出停滞一小段的情况
比较值设置为20
这里主频是80Mhz,所以
PWM频率就是80 000 000 / 800 / 100 = 1000HZ
占空比为:20/100 = 20%;
生成代码好后往下看
关键函数:
__HAL_TIM_DIRECTION_STATUS __HAL_TIM_PRESCALER __HAL_TIM_SetCounter __HAL_TIM_GetCounter __HAL_TIM_SetAutoreload __HAL_TIM_GetAutoreload __HAL_TIM_SetClockDivision __HAL_TIM_GetClockDivision __HAL_TIM_SetICPrescaler __HAL_TIM_GetICPrescaler __HAL_TIM_SetCompare __HAL_TIM_GetCompare __HAL_TIM_PRESCALER :修改预分频值 __HAL_TIM_SetAutoreload :修改自动重装载值 __HAL_TIM_SetCompare :修改比较值
示范使用:
打开PWM
打开定时器二的通道二的使能
使得PWM按照上面的预设参数输出PWM
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
参数对应:定时器2,通道2
修改PWM占空比
计算机网络
- HTTP 缓存
- 你知道 302 状态码是什么嘛?你平时浏览网页的过程中遇到过哪些 302 的场景?
- HTTP 常用的请求方式,区别和用途?
- HTTPS 是什么?具体流程
- 三次握手和四次挥手
- 你对 TCP 滑动窗口有了解嘛?
- WebSocket与Ajax的区别
- 了解 WebSocket 嘛?
- HTTP 如何实现长连接?在什么时候会超时?
- TCP 如何保证有效传输及拥塞控制原理。
- TCP 协议怎么保证可靠的,UDP 为什么不可靠?
算法
- 链表
- 字符串
- 数组问题
- 二叉树
- 排序算法
- 二分查找
- 动态规划
- BFS
- 栈
- DFS
- 回溯算法