雨過天晴 发表于 2022-1-28 12:15

usart用dma通信,时钟哪里不对劲?

本帖最后由 雨過天晴 于 2022-1-28 13:12 编辑

stm32f103c6t6

用的hal库

时钟设置的19200,串口助手能看到字节数值不对,串口助手时钟用9600,数值就能对上了,哪里弄错了?

雨過天晴 发表于 2022-1-28 12:17

本帖最后由 雨過天晴 于 2022-1-28 13:14 编辑



57600也试了



28800数值就正常


57600数值就乱了,参数给的是57600啊

雨過天晴 发表于 2022-1-28 12:18

香水城 发表于 2022-1-28 13:41

換個調試助手看看? 對於UART這邊 57600是沒問題的。

LcwSwust 发表于 2022-1-28 14:00

换个串口助手试试

wode2008 发表于 2022-1-28 14:14

时钟频率,共地

songchenping 发表于 2022-1-29 08:59

先确认自己的配置没有问题

雨過天晴 发表于 2022-2-8 09:26

设置是19200




__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
HAL_UART_Transmit(&huart1,TX_Buff,TX_Count,1000);
HAL_Delay(1000);
9600数据正常的

19200乱码中

串口助手换了好几个都一样,stm32f103c6t6a,现在不知道从哪里入手查???
@songchenping @香水城 @wode2008 @LcwSwust

雨過天晴 发表于 2022-2-8 15:29

破案了,用内部HSI没问题,一切都正常

用外部HSE有问题,晶振确实是8M的,咋回事?

diweo 发表于 2022-2-8 15:31

频率刚好差一半,按理说这个规律很明显了。调试模式一步步跟踪吧,看看哪里配置错了。

motor666 发表于 2022-2-8 19:59

大彩的触摸屏。

雨過天晴 发表于 2022-2-9 15:04

motor666 发表于 2022-2-8 19:59
大彩的触摸屏。

LcwSwust 发表于 2022-2-11 09:36

雨過天晴 发表于 2022-2-8 09:26
设置是19200




我不了解hal库,也许有BUG,你可以对照单片机的手册检查一下代码,或把时钟相关寄存器的值发送出来看看,基本确定是时钟的问题,看看哪里有2分频。

一刀一级 发表于 2022-2-11 09:47

好好看看是不是哪里的配置出问题了

carpsnow 发表于 2022-2-11 17:03

这样的话,就是时钟检查检查
页: [1]
查看完整版本: usart用dma通信,时钟哪里不对劲?