Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DMA
UART
串口
stm32f429的uart8 dma收发不能正常工作求解决办法?
发布于 2022-05-23 18:13:09 浏览:750
订阅该版
在rtt studio平台,芯片是stm32f429,串口3和串口4配置接收中断或者DMA模式都OK;串口8配置中断接收模式,收发都OK,但是配置成DMA模式该串口8不工作(发送和接收都没有)。 求助:将串口8配置成DMA收发模式可以正常工作。 ![4.png](https://oss-club.rt-thread.org/uploads/20220523/5b8b36d1aa829944a1914f6804258c3b.png) ![1.png](https://oss-club.rt-thread.org/uploads/20220523/b8fa80b459036e4c7a741f7cdeb25121.png) ![2.png](https://oss-club.rt-thread.org/uploads/20220523/b2db73af394079b398a0a8684f33edd1.png) ![3.png](https://oss-club.rt-thread.org/uploads/20220523/af7ddb710188c81896a1c96df2062b8f.png) ```c /* 串口485方向GPIO设置 */ rt_pin_mode(rs485_dir1, PIN_MODE_OUTPUT); rt_pin_write(rs485_dir1, PIN_LOW); /* 查找串口设备 */ u2_dev = rt_device_find("uart2"); u3_dev = rt_device_find("uart3"); u4_dev = rt_device_find("uart4"); u8_dev = rt_device_find("uart8"); /* 初始化信号量 */ rt_sem_init(&rx2_sem, "rx2_sem", 0, RT_IPC_FLAG_FIFO); rt_sem_init(&rx3_sem, "rx3_sem", 0, RT_IPC_FLAG_FIFO); rt_sem_init(&rx4_sem, "rx4_sem", 0, RT_IPC_FLAG_FIFO); rt_sem_init(&rx8_sem, "rx8_sem", 0, RT_IPC_FLAG_FIFO); /* 以读写及中断/DMA等发送接收方式打开串口设备 */ rt_device_open(u2_dev, RT_DEVICE_FLAG_RDWR|RT_DEVICE_FLAG_INT_RX); rt_device_open(u3_dev, RT_DEVICE_FLAG_RDWR|RT_DEVICE_FLAG_DMA_RX|RT_DEVICE_FLAG_DMA_TX); rt_device_open(u4_dev, RT_DEVICE_FLAG_RDWR|RT_DEVICE_FLAG_DMA_RX|RT_DEVICE_FLAG_DMA_TX); rt_device_open(u8_dev, RT_DEVICE_FLAG_RDWR|RT_DEVICE_FLAG_INT_RX); /* 配置串口 */ rt_device_control(u2_dev, RT_DEVICE_CTRL_CONFIG, (void *)&u2_configs); u3_configs.baud_rate = BAUD_RATE_9600; rt_device_control(u3_dev, RT_DEVICE_CTRL_CONFIG, (void *)&u3_configs); rt_device_control(u4_dev, RT_DEVICE_CTRL_CONFIG, (void *)&u4_configs); rt_device_control(u8_dev, RT_DEVICE_CTRL_CONFIG, (void *)&u8_configs); /* 设置接收回调函数 */ rt_device_set_rx_indicate(u2_dev, uartx_rxCallback); rt_device_set_rx_indicate(u3_dev, uartx_rxCallback); rt_device_set_rx_indicate(u4_dev, uartx_rxCallback); rt_device_set_rx_indicate(u8_dev, uartx_rxCallback); /* 设置发送回调函数 */ rt_device_set_tx_complete(u2_dev,uartx_txCallback); rt_device_set_tx_complete(u3_dev,uartx_txCallback); rt_device_set_tx_complete(u4_dev,uartx_txCallback); rt_device_set_tx_complete(u8_dev,uartx_txCallback); /* 设置接收数组 */ rt_ringbuffer_init(&uart2_rxrb,uart2_rx_buffer,UART2_RX_Buffer_Len); rt_ringbuffer_init(&uart3_rxrb,uart3_rx_buffer,UART3_RX_Buffer_Len); rt_ringbuffer_init(&uart4_rxrb,uart4_rx_buffer,UART4_RX_Buffer_Len); rt_ringbuffer_init(&uart8_rxrb,uart8_rx_buffer,UART8_RX_Buffer_Len); ```
查看更多
兜兜里有啥
2022-05-23
这家伙很懒,什么也没写!
驱动配置没写完
2
个回答
默认排序
按发布时间排序
123
认证专家
2022-05-23
这家伙很懒,什么也没写!
楼上说的对,CV工程师请求出战。
撰写答案
登录
注册新账号
关注者
0
被浏览
750
关于作者
大龙哥哥
这家伙很懒,什么也没写!
提问
2
回答
1
被采纳
0
关注TA
发私信
相关问题
1
rt thread 2.0.2 usart 接收缓存问题
2
关于STM32串口通信的问题
3
STM32F1+RTT串口接收终端数据丢失问题
4
UART TX丢数据?
5
RTT打开串口的时候如何自定义波特率呢?
6
STM32F4的USART数据接收问题
7
串口1234使用问题
8
串口接收回调函数
9
LPC18xx UART问题讨论
10
x1000串口配置的失败问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
如何在master上的BSP中添加配置yml文件
2
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
3
RT-Thread 发布 EtherKit开源以太网硬件!
4
rt-thread使用cherryusb实现虚拟串口
5
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部