USART1+DMA

2019-07-20 02:57发布

本帖最后由 ZhLeLe 于 2019-3-25 11:24 编辑

在MAIN函数里面调用:HAL_UART_Transmit_DMA(&huart1, (uint8_t *)"DMA Begining ",sizeof("DMA Begining ")-1);可以在串口调试助手上看到输出信息;
但是调用:HAL_UART_Transmit_DMA(&huart1, pTxBuff,sizeof(pTxBuff)-1);就看不到输出信息了。
数组定义uint8_t pTxBuff[]={"DMA Begining "};


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
ZhLeLe
1楼-- · 2019-07-21 00:00
正点原子 发表于 2019-3-23 03:17
学习下我们的串口通信例程

几乎是按照你们的例程来的,也在你们的例程上试过传字符串是可以的,但是到我自己写的程序就不行了,现在在找原因
ZhLeLe
2楼-- · 2019-07-21 03:13
 精彩回答 2  元偷偷看……
edmund1234
3楼-- · 2019-07-21 05:27
 精彩回答 2  元偷偷看……
ZhLeLe
4楼-- · 2019-07-21 07:43
edmund1234 发表于 2019-3-25 13:29
uint8_t pTxBuff[]={"DMA Begining "};

HAL_UART_Transmit_DMA(&huart1, pTxBuff,sizeof(pTxBuff)- ...

不再,uint8_t pTxBuff[]={"DMA Begining "};在main.c里面,HAL_UART_Transmit_DMA(&huart1, pTxBuff,sizeof(pTxBuff)-1);在stm32h7xx_hal_uart.c里面,但是在stm32h7xx_hal_uart.c里面 我没用用extern修饰
edmund1234
5楼-- · 2019-07-21 11:49
ZhLeLe 发表于 2019-3-25 14:47
不再,uint8_t pTxBuff[]={"DMA Begining "};在main.c里面,HAL_UART_Transmit_DMA(&huart1, pTxBuff,si ...

只要不在同一个文件, 用sizeof就就有机会是0,

HAL_UART_Transmit_DMA(&huart1, pTxBuff,4);
你这样改改试试, 就知道问题是不是sizeof了
ZhLeLe
6楼-- · 2019-07-21 17:22
 精彩回答 2  元偷偷看……

一周热门 更多>