完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
uint8_t tx[8]={1,2,3,4,5,6,7,8};
HAL_UART_Transmit_DMA( huart1, tx, 8); 发送的数据一直为数组的第一个字节 8个1 不知道怎么回事 求支招 |
|
相关推荐
2个回答
|
|
内存地址没有增加,改为增加就好
|
|
|
|
这个问题可能是由于STM32的串口DMA配置不正确或者数组tx的内存布局问题导致的。以下是一些建议和解决方案:
1. 确保DMA配置正确: - 检查DMA通道是否已正确配置,包括源地址、目标地址、数据宽度、传输方向等。 - 确保DMA中断已经启用,并且在中断服务程序中正确处理了DMA传输完成的中断。 2. 检查数组tx的内存布局: - 确保数组tx的内存布局是连续的,没有被其他变量或函数调用打断。 - 如果可能,尝试将数组tx定义为全局变量,以避免内存布局问题。 3. 检查HAL_UART_Transmit_DMA函数的参数: - 确保huart1是正确的UART句柄。 - 确保tx数组的地址传递正确,没有被修改或覆盖。 4. 使用HAL_UART_Transmit_DMA_polling函数进行调试: - 尝试使用HAL_UART_Transmit_DMA_polling函数代替HAL_UART_Transmit_DMA函数,以查看是否能够成功发送数据。如果polling函数能够成功发送数据,那么问题可能出在DMA配置上。 5. 检查串口波特率和时钟配置: - 确保串口波特率和时钟配置正确,以避免数据传输错误。 6. 使用示波器或逻辑分析仪检查串口信号: - 如果可能,使用示波器或逻辑分析仪检查串口TX线上的信号,以确定数据是否正确发送。 7. 更新STM32固件库: - 确保使用的STM32固件库是最新版本,以避免可能的已知问题。 8. 检查代码中的其他潜在问题: - 检查代码中是否有其他可能导致数据发送错误的部分,例如错误的中断处理程序、错误的内存操作等。 通过以上步骤,你应该能够找到问题的原因并解决它。如果问题仍然存在,请提供更多详细信息,以便进一步分析和解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1090 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1107 浏览 1 评论
545 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
412 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
990 浏览 2 评论
1591浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
262浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
274浏览 3评论
245浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
238浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 07:03 , Processed in 0.873777 second(s), Total 78, Slave 64 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号