OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2663|回复: 1

STM32F103C8T6串口DMA不发送

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-5-11
在线时间
7 小时
发表于 2019-6-20 22:22:38 | 显示全部楼层 |阅读模式
10金钱
uint8_t printf_tx_dma_save[64]={0};
uint8_t printf_rx_dma_save[64]={0};
void printf_init(void)
{
                LL_DMA_ConfigAddresses(DMA1,LL_DMA_CHANNEL_4,(uint32_t)*&printf_tx_dma_save,LL_USART_DMA_GetRegAddr(USART1),LL_DMA_DIRECTION_MEMORY_TO_PERIPH);
                LL_DMA_ConfigAddresses(DMA1,LL_DMA_CHANNEL_5,LL_USART_DMA_GetRegAddr(USART1 ), (uint32_t)*&printf_rx_dma_save, LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
}


uint8_t printf_tx(char* format, ...)
{
        unsigned int i = 0;
        LL_DMA_ClearFlag_TC4(DMA1);
        LL_DMA_DisableChannel(DMA1 ,LL_DMA_CHANNEL_4);
        va_list ap;                            //定义一个va_list型的变量,这个变量是指向参数的指针.
        va_start(ap, format);                 //用va_start宏初始化变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数
        i = vsnprintf((char*)printf_tx_dma_save, 64, format, ap); //注意,不要漏掉前面的_
        va_end(ap);                            //用va_end宏结束可变参数的获取
        LL_DMA_SetDataLength(DMA1,LL_DMA_CHANNEL_4,i);//DMA输出长度
        LL_DMA_EnableChannel(DMA1,LL_DMA_CHANNEL_4);//启动DMA传输
        return i;                                    //返回参数的字符个数中间有逗号间隔
}
这是使用代码
这里是配置的内容,使用的是LL库(cube生成)
LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_CHANNEL_4, LL_DMA_DIRECTION_MEMORY_TO_PERIPH);

  LL_DMA_SetChannelPriorityLevel(DMA1, LL_DMA_CHANNEL_4, LL_DMA_PRIORITY_LOW);

  LL_DMA_SetMode(DMA1, LL_DMA_CHANNEL_4, LL_DMA_MODE_NORMAL);

  LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_CHANNEL_4, LL_DMA_PERIPH_NOINCREMENT);

  LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_CHANNEL_4, LL_DMA_MEMORY_INCREMENT);

  LL_DMA_SetPeriphSize(DMA1, LL_DMA_CHANNEL_4, LL_DMA_PDATAALIGN_BYTE);

  LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_4, LL_DMA_MDATAALIGN_BYTE);



QQ截图20190620221553.png
QQ截图20190620221514.png

感觉就像DMA根本没有开始传输,但是该打开的都打开了==
同时DMA1 第1通道循环模式搬运ADC数据,运行的很正常
怀疑有可能1通道挤占了4通道,但是我后来把1通道给关了,依旧没用==
求大佬解惑
QQ截图20190620222043.png
这是cube的设置

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-6-21 17:58:16 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 21:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表