本帖最后由 在路上… 于 2019-3-29 10:22 编辑 如题,自己画的STM32L151C8TA的板子 内部HSI时钟,我直接使用CUBEMX生成的串口测试工程,发现串口输出的数据乱码,具体表现为我输出 0D 0A 但实际输出的确是8D 8A 我输出0x30 31 3 2实际输出0x70 71 72 这是什么问题啊?? 我还试了点亮LED灯 这个是正常的 。是我供电问题 还是其他问题呢? 按理说就一个最小系统版加LED和按键 不应该有啥问题啊 郁闷 |
hseTest.zip
下载5.46 MB, 下载次数: 99, 下载积分: ST金币 -1
STM32L151RDT6 SDIO读写SD卡 FIFO下溢错误,不知是什么原因
STM32L152 RTC唤醒STOP mode问题
STM32L152系列自带LCD驱动段码液晶屏,怎么驱动想要亮的段亮
STM32L151为何FLASH擦除后全是是0x00?
求助!!STM32L151中的RTC唤醒(wake up)中断问题
STM32L152普通I/O模拟SPI驱动W25Q16问题
STM32L152开发板原理图及说明文档
STM32L1系列,如何释放PA15为普通GPIO端口
STM32L151读取W25Q16的ID错误,请帮忙看看是什么原因
STM32L151 STOP模式唤醒程序跑哪儿了
同步串口的时钟输出管脚PA8
波特率用的115200?
时钟设的外部16M,HSE
评分
查看全部评分
一开始我也怀疑是我配置问题 所以我用cubemx生成的代码 配置应该不会错了吧? 有没有可能是硬件问题呢
把你的工程发上来,你的描述不完全,或许可能还有错误。
首先用示波器或逻辑分析仪,看一下波特率对不对;
其次串口数据位设置对了没有?STM32的数据位数一般包括数据位+停止位(+校验位,是否包括这位得查一下,一时记不清)。
如果你要设置8位数据位,1位停止位,无校验,那么数据长度要设成9。
发0D 0A 实际输出的确是8D 8A,这可可能是数据位不够,像是少一位;但是发0x30 31 32 实际输出0x70 71 72,这个就不是少数据位的问题了,所以又产生了矛盾。如果是TTL输出的话,是不应该出现这种现象的;一般RS232芯片用法不对时,容易出数据错误问题。
评分
查看全部评分
这是cubemx生成的配置代码,示波器挂过 波特率是对的
husart1.Init.WordLength = USART_WORDLENGTH_8B; 这条肯定是不对的
发个工程会死人吗?这样挤牙膏有意义?
这个是MCU的pcb
pcb
老哥稳住 正在传工程 没搞过附件 还在琢磨
8个数据位 配置应该是对的
确定HSI起震了吗?倍频系数与分频系数设置的多少?要最终的clk为32Mhz的
评分
查看全部评分
看了你的工程设置,8位数据位的确没错,在这个初始化结构体中的确只包含数据位和校验位。
这里看到你用了HSE,而不是HSI;串口用的是同步方式,这个方式很少用啊,不知道你用的什么地方呢,9600波特率已经很低了,按说不需要同步模式。用了同步串口也不要紧,对发送没影响;你的PA8脚接对了吗?没有没跟其它资源冲突。
PA8是干嘛用的? 其他没什么资源了 这个板就用了led和按键 其他就是串口了
评分
查看全部评分
嗯嗯 非常感谢 我焊了外部时钟 使用外部时钟后数据正常了 应该是内部时钟不准导致偶尔乱码 再次感谢您的帮助