
串口DMA + 空闲中断收发 ?
STM32G070CBT6使用硬件SPI无法读出W25Q128的ID
基于STM32F103的HAL库实现USB(HID) OTA升级
STM32U5 IWDG的提前唤醒中断无法在STOP模式下触发
训练好的ai模型导入cubemx不成功咋办,试了好几个模型压缩了也不行,ram占用过大,有无解决方案?
使用CubeMX选择芯片生成项目时如何选择外部晶振?
ST25R3916有快速读取吗?
CUBEIDE无法安装X-CUBE-NFC5的软件包
STM32L476 Flash擦除失败问题
求助:keil在debug时出现Cannot access Memory*** error 122: AGDI: memory read failed (0xF81AF008)
2. 分给串口外设的时钟至少是波特率的16倍以上最佳。
可以测量一下发送信号是否有偏差。
发送采用查询方式,接收采样中断方式,测试了UART1/UART3/UART4/UART5波特率设置为1382400,都没有任何问题。
可以肯定,对于片内UART,实现460800的波特率是没有压力的。注意波特率较高时,系统时钟源建议选用外部HSE。
至于接收处理代码方面,波特率较高时要接收处理要快捷点,可能的话采用DMA接收。如果中断接收的话,除了接收处理程序
本身尽量精简外,还要注意接收中断优先级设置高点。
就是说要尽量把那个外部晶振焊上吗?我目前使用的是那个开发板上的ST-LINK的8MHZ的晶振和内部时钟源控制,没有用串口中断,仅用单片机向电脑发送字符串,现在波特率到460800电脑端就不能收到数据了
我设置了DMA,用DMA的方式进行字符串的发送,依旧是串口波特率高了之后电脑收不到数据
只是发送都不行,会不会是你PC端的串口助手有问题啊。我这边实现起来很轻松。还有,你使用外部时钟源是必要的。Nucleo板是从STLINK那边引的8MHz过来的,可以用。时钟设置为Bypass Clock Source.
用的正点原子的那个串口助手,上边的波特率最高可以设置3M,晶振目前使用的是那个8M的外部晶振