stm32usart串口通信出现问题

        今天,在调试stm32的usart串口通信的时候,出现了读取到的数据永远都是10的现象。

        10的十六进制为0A,又是换行,0D是回车。一个串口发送数据,会经常加回车和换行,很正常。解决方案如下所示。勾选16进制发送,取消勾选发送新行。

 

        最后,终于搞出来了,可以发送比较多的数据,但是所发送的数据的最后一定要是0d 0a。而且最好勾选16进制显示。

 

参考:

串口调试助手总是多发送两个字节 0d 0a_串口结束符0d0a_通下水道技术一流的博客-CSDN博客

STM32串口接收以及发送大全_stm32串口通信的接收与发送_small_planet的博客-CSDN博客

STM32串口接收不定长数据:采用标志位(比如0X0D,0X0A)结束法_捧一彼岸花的博客-CSDN博客

关于STM32串口中 0x0a,0x0d的学习_接收到的数据必须是0x0d_✨ Doomsday的博客-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是关于STM32 USART发送和接收使用DMA的回答: DMA (Direct Memory Access)是一种在不占用CPU的情况下直接进行数据传输的技术。对于STM32USART模块,使用DMA可以大大减轻CPU的负担,提高数据传输效率。 首先,需要配置USART和DMA。可以使用STM32的CubeMX工具来快速生成初始化代码。在配置USART时,需要设置USART的波特率、数据位、停止位和校验位等参数。在配置DMA时,需要设置DMA的传输方向、数据长度、传输模式、优先级和中断等参数。 接下来,可以使用HAL库提供的函数来启动DMA传输。在发送数据时,可以使用函数HAL_UART_Transmit_DMA()启动DMA传输,该函数会将数据存储在指定的缓冲区中,并将缓冲区的地址传递给DMA进行传输。在接收数据时,可以使用函数HAL_UART_Receive_DMA()启动DMA传输,该函数会将接收到的数据存储在指定的缓冲区中,并将缓冲区的地址传递给DMA进行传输。 在DMA传输完成后,可以使用HAL库提供的回调函数来进行处理。对于发送完成,可以使用函数HAL_UART_TxCpltCallback();对于接收完成,可以使用函数HAL_UART_RxCpltCallback()。 需要注意的是,在使用DMA进行数据传输时,需要确保缓冲区的大小足够大,以便存储需要传输的数据。 希望这个回答能够帮助你了解STM32 USART发送和接收使用DMA的相关知识。如果你有任何其他问题,可以随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值