随笔分类 -  玩转STM32

基于HAL库的STM32编程是未来的趋势,根据自己的工作经验介绍其入门与学习过程
摘要:普通函数与回调函数的区别:就是ST将中断封装,给使用者的API,就是标准库的中断函数 对普通函数的调用: 调用程序发出对普通函数的调用后,程序执行立即转向被调用函数执行,直到被调用函数执行完毕后,再返回调用程序继续执行。从发出调用的程序的角度看,这个过程为“调用 等待被调用函数执行完毕 继续执行” 阅读全文
posted @ 2019-07-07 12:13 CodeAllen 阅读(13362) 评论(0) 推荐(2)
摘要:测量脉冲宽度或者测量频率 基本方法 1.设置TIM2 CH1为输入捕获功能; 2.设置上升沿捕获; 3.使能TIM2 CH1捕获功能; 4.捕获到上升沿后,存入capture_buf[0],改为捕获下降沿; 5.捕获到下降沿后,存入capture_buf[1],改为捕获上升沿; 6.捕获到上升沿后, 阅读全文
posted @ 2019-07-07 12:10 CodeAllen 阅读(9024) 评论(0) 推荐(0)
摘要:应用情景 使用定时器配置编码器模式,发现STM32只有两个定时器是32位,16位的测量值不够用,发现是可以使用两个16位定时器级联为32位的。 我是在使用编码器计数电机转速时使用,但是最终实现的效果不好,不过主要原因是我没有使用编码器的Z线(100个引脚全部被使用,实在是没有可用资源了) 8个控制电 阅读全文
posted @ 2019-04-02 08:20 CodeAllen 阅读(2750) 评论(0) 推荐(0)
摘要:cube基本配置,外设开启编码器,串口2 可能大家在设置的时候有这个错误 错误:error: #20: identifier "TIM_ICPOLARITY_BOTHEDGE" is undefined 意思是,高级、通用定时器不能用BothEdge,只有基本定时器才能用BothEdge 针对具体的 阅读全文
posted @ 2019-04-02 08:06 CodeAllen 阅读(14073) 评论(0) 推荐(0)
摘要:基本流程: 1.配置定时器 2.开启定时器 3.动态改变pwm输出,改变值 HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1); 函数总结: PWM输出配置: 频率设置: 刹车和死区配置: 基于通信的pwm频率和脉宽的更新控制算法: 补充: 开起定时器功能 只要在相应的 阅读全文
posted @ 2019-03-27 21:39 CodeAllen 阅读(20914) 评论(0) 推荐(0)
摘要:1 自带的hal_delay 函数 毫秒级延迟 也可以配置为us延时,改变函数参数 配置方法:也可以配置为1us 2 中断延时 利用定时器计时 3 优选方式 获取系统时钟计时,非阻塞式延时 阅读全文
posted @ 2019-03-27 21:33 CodeAllen 阅读(11583) 评论(0) 推荐(1)
摘要:GPIO 库函数 基本就是使用以下几个函数 2019-03-27 阅读全文
posted @ 2019-03-27 21:30 CodeAllen 阅读(2653) 评论(0) 推荐(0)
摘要:ADC工作均为非阻塞状态 轮询模式 中断模式 DMA模式 库函数: 校准模式: 校准ADC(HAL_ADCEx_Calibration_Start(&hadc);有些芯片不支持校准,F4不支持 可变占空比设置 1 /* 2 3 实际使用时空置引脚状态下会飘动,大致为3.3V的一半,是芯片内部的原因 阅读全文
posted @ 2019-03-26 20:57 CodeAllen 阅读(9394) 评论(0) 推荐(2)