完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好!
我在 STM32F446 芯片上运行,但遇到以下问题: 我测试了一个通信系统,在该系统中,我通过 STM32f446 NUCLEO 板上的 UART1 与另一个设备连接了 912600 波特通信。一切顺利,没有错误或其他问题。 现在我们已经设计了一个带有 stm32f446 芯片的 PCB,并且仍然通过 UART1 以 912600 波特率运行。问题是,现在我们有一个通信丢失,启动后,我们的 UART1 串行端口实际上无法再读取任何字节。我尝试了 115200 波特而不是 912600,它解决了问题。但我不知道为什么。我们没有在 OSC32_IN 和 OSC32_OUT 上连接振荡器,只有在 OSC_IN 和 OSC_OUT 上我们使用外部 20MHz 晶体振荡器。 我阅读了 stm32f446 的参考手册,但我无法真正理解第 810 - 816 页上的过采样是什么意思,其余的对我来说也很难理解。 OSC32 是否对在 UART1 上使用像 912600 这样的高波特率有很大影响,或者我在从 nucleo 板到定制 pcb 设计的转变中是否遗漏了其他东西? |
|
相关推荐
1个回答
|
|
>>我测试了一个通信系统,我连接了一个 9 12 600 波特率
9 21 600 是正常/经典倍数 OSC32 可能没有关系。 Nucleo 通常从板上的 ST-LINK 获得它的 8 MHz 时钟 您需要确保 HSE_VALUE(通常在 stm32fxx_hal_conf.h 中)反映您的时钟速度,以便波特率数学计算有效。 PLL 设置还需要反映您不同的时钟源。 您可以在 Nucleo 和您的开发板上使用 HSI+PLL 进行同类测试。 你的时钟需要开始。 OVER8 和 OVER16 表示 UART 尝试以 8 或 16 倍的波特时钟速率与您的异步信号进行采样/同步,即 921600 x16 所以波特率将 APB 时钟除以 (921600 * 16) 或 (921600 * 8) 。利率越高,您越接近 APB/16 或 APB/8 上限。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2303 浏览 1 评论
3062 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1636 浏览 1 评论
3453 浏览 6 评论
5804 浏览 21 评论
797浏览 4评论
1174浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
440浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1154浏览 3评论
1205浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-24 22:07 , Processed in 1.138918 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191