- 博客(5)
- 收藏
- 关注
原创 stm32驱动直流电机(HAL库)
电机作为一个大功率器件,不像LED那样单片机可以直接驱动,本文使用的电机驱动为DRV8833,它可以同时驱动2个电机,如果你的电机驱动与本文不同,也可以借鉴以下思路。1.管脚示意图2.管脚功能:3.控制逻辑:拿到一个驱动,最主要的就是搞清楚它输入和输出的逻辑关系,以此为例,当AIN1和AIN2电平相同时,电机停止,相反时,电机转动。比如,给AIN1提供一个PWM,调节pwm的占空比来改变电机的转速。AIN2接单片机的任意gpio口,控制其电平翻转,实现改变电机的方向。
2023-10-21 16:16:15 6069 20
原创 串口以中断方式收发定长数据
主函数大循环中代码如下,实现把收到的数据返还电脑。串口以中断方式收发数据,必须要收到预期接收值才能触发接收完成中断。如HAL_UART_Receive_IT(&UART1,RX_DATA,5)必须收到5个字节数据才能触发HAL_UART_RxCpltCallback()。2.硬件方面,如gpio等 void HAL_UART_MspInit(UART_HandleTypeDef *huart)。1.软件方面,如波特率等,void UART1_Init(uint32_t bandrate)
2023-10-05 20:55:59 134 1
原创 正点原子按键扫描函数解读
当mode=0时,任意按键按下,进入if,执行key_up=0,返回对应按键。注意,如果此时我们不松手它无法进入else if ,也就是key_up一直等于0,所以,如果我们不松手,第一次返回对应按键后,再一次进入函数时,它不能进去if,也不能进入else ,就只能直接return 0 了。当 mode=1的时候,任意按键按下就会进入 if ,然后执行key_up=0,返回对应的按键,松手以后进入else if,执行key_up=0,当下一次有按键按下(或者没有松手),又能成功触发if条件。
2023-09-22 17:11:09 342 1
原创 STM32F1使用内部晶振HSI倍频到64Mhz
需要包含头文件 #include "stm32f1xx_hal.h",然后封装一个函数就可以使用了。
2023-09-21 21:41:58 530
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人