
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
STM32H750使用FMC
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
我想实现三对移相PWM(占空比为50%)输出,前两对是互补输出,用了TIM1的CH1/CH1N和CH2/CH2N。第三对用了TIM1的CH3和TIM8的CH2,类似于互补输出。需要以TIM1的CH1/CH1N为参考,其余两对怎样实现占空比不变,相移可调呢?另外TIM8的CH1和CH3的PWM需要输出高电平
STM32H723 TIM1输出三相50%的占空比,TIM_CH3的输出上升沿略比TIM_CH1和TIM_CH2超前,这是哪里配置有问题吗
stm32h7 用pb3、pb4、pb5、pa15做spi3后,mx组态时debug里选择serial wire,程序里加了禁用jtag,spi3口不能工作
MCSDK不能启动电机?
STM32H745启动与烧录问题
stm32H7 LTDC控制器 CLUT模式寄存器配置
STM32H750B-DK 板载STLINK 无程序
[md]不同任务使用同一个串口发送,当然要保证上一帧发送完成才发送下一帧。可以使用消息队列等方式,将同一个串口的发送函数放到同一个任务中。
HAL库串口使用中断方式接收时,如果发送用阻塞或者DMA方式,会有可能卡死。如果是485半双工通信,收发不同时发生,一般没问题。至于为什么,在
HAL_UART_Receive_IT
处理过程中会先LOCK串口,处理完再UNLOCK,实际上这段时间内串口变成半双工了。可以收发都用IT方式,怕消耗CPU资源都用DMA也好。
[md]你分析的是收和发的冲突,实际上我把程序中所有串口的收发全改成中断方式后仍然存在极小概率死机(每秒一次发送,大概1小时到一天左右发生一次)的现象,死机位置是一直等待串口发送完成,因此我怀疑是两个不同优先级的线程同时使用串口发送引起的,目前的做法是不同线程如果需要使用同一个串口的发送函数,那么让不同线程分别在不同时间段发送(时间分段)。
[md]如果多任务使用同一个串口的发送,肯定得保证上一帧发送完成才发送下一帧。可以使用消息队列等方式,让串口的发送函数保持在一个任务中处理。
[md]谢谢,习惯了以前前后台的编程方式,转FreeRTOS只会简单的拆分任务,像一些消息队列类的还做不到能灵活处理,慢慢适应吧!