• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32串口1和ADC转换问题

电子WWW 2018-12-19 浏览量:1163
用stm32串口1发数据,串口助手总是不能正确接收第一个字符,在串口初始化中加入   USART_ClearFlag(USART1 USART_FLAG_TC);这条语句依然是不能正常显示第一个字符。在做ADC(用的ADC2,PC0)采集电压用串口显示时,没加ADC转换代码时,串口数据显示正常(除了第一个字符),加入ADC转换相关的代码后,串口显示不正常,只能接收到一个字符而且还是乱码
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个绝对是程序的问题,我之前些的一个串口程序就是第一个字符不正常发送,最后找到问题所在是发送完一个字节后应该是判断TXE位,而不是TC位。我是这样判断的while((USART1->SR & 0x0080)!=0x0080);

    至于你说的加了AD转换后串口不正常应该是你的串口中断和AD初始化部分的程序存在问题,看不到源码,只能估个大概位置了。

    • 发布于 2018-12-19
    • 举报
    • 评论 3
    • -1
    • 0
电子WWW 回复了 我是假管:按照你的方法还是不行,哎 回复
电子WWW 回复了 我是假管:按照你的方法还是不行,哎 回复
我是假管贴心小助手 回复了 电子WWW:你先调试好串口的程序,然后在加上AD的程序,不要两者都加上后在调试,这样出问题后都不知道哪里的问题。 回复

其他答案 数量:10
  • 这个问题我之前也遇到过最后发现还是自己的代码不够严谨引起的.
    • 发布于2018-12-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 是不是代码的问题,如果前期正常,后期加入代码后不正常可能是处理的问题
    • 发布于2018-12-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 芯片上应该是不会有这种问题的,最可能的就是你的配置问题,可以发出代码来看看
    • 发布于2018-12-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该是逻辑处理的混乱,并且还需要确定一下你的AD引脚和串口引脚是否冲突
    • 发布于2018-12-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 程序混乱,ADC 和 uart 互补相关的东西,都能相互影响,不是硬件问题,就是程序混乱
    • 发布于2018-12-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 看看ADC电路与串口电路是否冲突,引脚初始化是否冲突等等,这些都有可能,另外串口接收函数用不定长接收比较好。

    • 发布于2018-12-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 看看ADC电路与串口电路是否冲突,引脚初始化是否冲突等等,这些都有可能,另外串口接收函数用不定长接收比较好。

    • 发布于2018-12-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种应该是串口接收函数有问题,可以放代码上来看看
    • 发布于2019-01-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 有可能是你的逻辑处理的问题,要重新检查逻辑
    • 发布于2019-01-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32串口1和ADC转换问题