【串口】串口不返回数据,返回数据错误等原因分析_liangchaoxi的IT博客_新浪博客......

原因分析总结:

1、初始化了吗?

有一次,串口始终返回的数据只有一个字母,所以我们一直怀疑是数据被覆盖或者数据接收不全,但是后来才发现,串口没有初始化。

2、速率设置不对。

3、485端口的收发方式与串口有区别。

8月20日 周六

 倾角传感器没有数据返回的原因是:

 倾角传感器传输端口已经由一般串口改为485接口,232的收发是由两条线路来分别司职收和发,485的通却是两条线路通过差分的方式表示1、和0,共同司职收或发,收还是发由另一个引脚控制,因而在收或发之前,一定要正确设置这个引脚。

  P7OUT &= ~BIT4;  P7 拉低 准备发送

  UART2_SendStr_char(ask);     

  __delay_cycles(20000);   //延时(时间要充足,且考虑要保证不错过回来的数据),保证最后一个字符能够发出去(把字符丢入buff后不管,此时若buff没送出字符,485就进入接收状态,则字符发布出去)

  P7OUT |= BIT4;  P7  拉高  准备接收

否则无法正确收发数据,要么只能收,要么只能发。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32使用HAL库实现串口通讯的理论讲解可以简要概括如下: 首先,需要明确的是HAL库是什么,它是ST公司官方提供的用于简化STM32芯片开发的一套库函数集合。它封装了底层的硬件操作,提供了一些高级的API函数,使得开发者能够更方便地进行硬件编程。 在STM32中实现串口通讯,主要涉及到以下几个方面的内容: 1. 引入HAL库:在工程中引入HAL库文件,可以通过下载ST官方提供的开发包得到。引入HAL库后,就可以在代码中使用HAL库提供的函数。 2. 初始化串口:调用HAL库提供的函数,进行串口的初始化设置。包括设置波特率、数据位、停止位、校验位等等。 3. 串口发送数据:通过HAL库提供的发送函数,将要发送的数据写入串口的发送缓冲区,然后等待数据发送完成。 4. 串口接收数据:通过HAL库提供的接收函数,可以判断是否接收到了新的数据,若有新的数据到达,则可以通过读取接收缓冲区的方式获取到数据。 5. 中断处理:为了提高串口通讯的效率,一般会使用中断来处理串口接收数据。在中断中,可以读取接收缓冲区的数据,并进行相应的处理。 总结一下,实现STM32的串口通讯主要是通过引入HAL库,进行初始化设置,然后使用库函数发送和接收数据。另外,还可以采用中断的方式处理接收数据。这样就可以实现STM32与其他设备之间的串口通讯。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值