你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)

[复制链接]
LaoSun518 提问时间:2021-11-11 19:22 / 未解决

在测试串口发送函数HAL_UART_Transmit_DMA(UART_HandleTypeDef huart, uint8_t pData, uint16_t Size) 时,发现不能对pData赋值后发送,求原因!

796222606636135.png

390702606636183.png

983512606636146.png

QQ图片20211113084229.png

收藏 评论8 发布时间:2021-11-11 19:22

举报

8个回答
STMWoodData 回答时间:2021-11-12 09:20:48

HAL_UART_Transmit_DMA和printf发送有冲突吧

LaoSun518 回答时间:2021-11-12 09:53:14

STMWoodData 发表于 2021-11-12 09:20
HAL_UART_Transmit_DMA和printf发送有冲突吧

1.去掉printf,也不输出!

2.printf用的是轮询语句,占用的是cpu资源,而dma数据传输时,没有用到cpu资源。两者在资源抢夺上没有冲突。

xmshao 回答时间:2021-11-12 10:48:33
结合你的描述,你现在即使不开启基于DMA的uart发送,你的printf依然没有输出。不知你调用的AL_UART_Transmit_DMA()和Printf()是否使用同一个UART。不妨先调试好一个功能,比方先调试好UART的DMA发送。 基于CubeMx进行配置的话,基本配置【管脚、uart、DMA】不会有啥问题。有个地方注意下,DMA初始化文件放在UART初始文件之前,  MX_DMA_Init();  MX_USART1_UART_Init();再就是检测下你的硬件连接。
LaoSun518 回答时间:2021-11-12 11:18:16
xmshao 发表于 2021-11-12 10:48
结合你的描述,你现在即使不开启基于DMA的uart发送,你的printf依然没有输出。不知你调用的AL_UART_Transmi ...

微信截图_20211112112525.png
废鱼 回答时间:2021-11-13 11:32:32

楼主请先确认一下收到数据个数是不是在增加,如果是增加,修改一下代码,把(uin8_t )&ch中的(uin8_t )去掉,直接&ch就行了。

LaoSun518 回答时间:2021-11-14 09:38:31

试过,还是不行

废鱼 回答时间:2021-11-15 08:38:51

楼主,是否可以仿真,仿真模式下试一下能不能进入这个函数。

jackghl 回答时间:2022-9-5 14:44:05
编译器优化问题? 无标题.png

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版