- 博客(7)
- 收藏
- 关注
原创 BLDC 霍尔位置对应六步法驱动
硬石开发版学习记录正转控制正向和反向对应的霍尔二进制相加=7,只用一个是switch函数就可以了给出的代码,对比前面的例程,没有使用的端口就没有start;比如case1:C+A-, 仅仅start了通道3的正向输出口,和通道1的反向输出口,前面六步法里面的通道对应的正反输出口都start了,觉得奇怪,应该是举例用的,实际应该不用 /* 获取霍尔传感器引脚状态,作为换相的依据 */ __IO uint32_t tmp = 0; uwStep = HallSensor_GetPinSt
2021-04-17 16:21:31
5384
1
原创 BLDC六步法驱动
根据硬石开发版总结六步法对应的定子线圈和转子磁极转换为电路控制高级定时器设置比较输出通道1为A相,2为B相,3为C相向上计数,PWM频率22K,第1步A+ C-因为是循环控制,要考虑上一步,是第6步B+C-,改为A+C-,首先关断B+,B相的mos管上下桥臂都关断。HAL_TIM_PWM_Stop(&htimx_BLDC, TIM_CHANNEL_2);HAL_TIMEx_PWMN_Stop(&htimx_BLDC, TIM_CHANNEL_2);然后开启A+,比较输出
2021-04-17 15:32:19
2962
原创 关闭PWM输出之后的电平状态
最近测试了PWM输出,发现用关闭定时的方法关闭PWM之后状态时高时低,不稳定,我想要的是低电平,后来用了库函数TIM_CCxCmd(TIM4, TIM_Channel_1, TIM_CCx_Disable),这个指令关闭后就一直是低电平了。如果用了HAL库,开始用的HAL_TIM_PWM_Stop(&htim4, TIM_CHANNEL_1)不行,改为是TIM_CCxChannelCmd(&TIM4, TIM_Channel_1, TIM_CCx_Disable)可以了...
2020-06-29 18:06:16
4733
2
原创 CAN 485通信距离 波特率参考
网上找的数据,放这里记录一下CAN通信参考速率(Kbps) 距离(m)1000 40500 130250 270125 530100 62050 130020 330010 6700485通信参考波特率
2020-06-29 16:40:48
15843
1
原创 STM32 RS485中断试验
串口1按照开发板的试验,正常了,开始串口6做RS485通信试验,配置都按照串口1的中断配置,只是多了一个485模块的管脚配置,测试的时候发现,只能发送数据,不能接收,进入不了接收中断,很奇怪,测量了控制管脚,控制电平是正常的,就是进不了接收中断。代码改来改去的,就是进不去。晚上下班回去还在想,问题没解决,就是一直想问题。标准库里面,配置管脚的时候是接收和发射两个管脚分开配置的,HAL库就一起配置了开发板的UART1的HAL配置也是分开配置的 GPIO_Initure.Pin=GPIO_PIN_9;
2020-05-26 14:58:31
1818
原创 串口1中断试验
总结一下,使用cubemax初始化串口1,在Usart.c文件里面MX_USART1_UART_Init(),设置了波特率,位信息等参数,函数调用子函数HAL_UART_Init(&huart1),{里面再调用1.HAL_UART_MspInit(huart);这个函数在Usart.c文件里面了,给用户重新写的,里面再调用1.1HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);配置GPIO口1.2HAL_NVIC_SetPriority(USART1_IRQn
2020-05-26 10:05:41
744
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人