liguilini
获得 8 次赞
帮助过56人
串口使用DMA方式接受数据,那么什么情况触发串口中断呢?比如 我定个DMA的接收buffer是128byte,那么总不能收到128个才触发一次吧
从官网下的库,执行stm32f4xx_cryp_aes.c文件中ErrorStatus CRYP_AES_CBC()到 if(CRYP_GetCmdStatus() == DISABLE)直接跳出,看解释:/* The CRYP peripheral clock is not enabled or the device doesn't embed the CRYP peripheral (please check the device sales type. */,我用的芯片是STM32F427IGTB,查了数据手册,是带有硬件加密功能的,时钟也开启了,为什么会失败呢?
我用stm32f3以DMA方式产生互补的两路PWM信号。参考了stm32cubef3中stm32f3-discovery下TIM_DMA的例程,该程序只有一路PWM, 我在此基础上增加了一路与之互补的PWM,采用HAL库函数HAL_TIM_PWM_Start_DMA和TIM_CCxChannelCmd实现了占用一个DMA通道(两路GPIO通道)正常产生一对互补PWM信号。现在出现的问题是用这两个函数如果想实现第二个和第三个DMA通道的两路互补PWM(一共6路PWM)就不行了,不能同时产生PWM信号,单独使用任何一个DMA通道都可以产生正常的两路互补PWM,但是三个DMA通道不能同时使用。如果不用DMA方式6路PWM都可以正常产生,比如采用函数HAL_TIM_PWM_Start和TIM_CCxChannelCmd。我猜想应该是DMA设置问题,但搞了很久都没有解决,不知道原因在哪里,请高手赐教。
使用stm32_f105-07_f2_f4_usb-host-device_lib 中提供的 HID 历程修改为 BULK 设备,进行USB传输,USB 选择为全速设备。通信速率比较低,如何提高通讯速度呢 ?