Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
串口中断
串口接收
5
为什么rt_device_read()只能读取到两个字节数据
发布于 2023-02-14 15:15:38 浏览:1482
订阅该版
已经确定了设备每次会发送9字节数据,但是每次都只能读取到两字节数据,而且串口的配置都没问题 ```c /* 接收数据回调函数 */ static rt_err_t uart_rx_ind(rt_device_t dev, rt_size_t size) { if (size > 0) { rt_sem_release(&rx_sem); } return RT_EOK; } ``` ```c static void serial_thread_entry(void *parameter) { while (1) { while (rt_device_read(serial,0,data,9) == 0) { rt_sem_take(&rx_sem, RT_WAITING_FOREVER); } ... } } ``` ```c serial_configure_t config = RT_SERIAL_CONFIG_DEFAULT; config.baud_rate = 115200; //修改波特率为 57600 config.bufsz = 512; //修改缓冲区 buff size 为 128 config.parity = PARITY_NONE; //修改为偶校验模式 config.data_bits = 8; rt_device_control(serial, RT_DEVICE_CTRL_CONFIG, &config); /* 以中断接收及轮询发送模式打开串口设备 */ rt_device_open(serial, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX); //RT_DEVICE_OFLAG_RDWR RT_DEVICE_FLAG_INT_RX /* 设置接收回调函数 */ rt_device_set_rx_indicate(serial, uart_rx_ind); ```
查看更多
crystal266
2023-02-14
嵌入式
参考官方示例一次读一个。读取数据线程会尝试读取一个字符数据,如果没有数据则会挂起并等待信号量,当串口设备接收到一个数据时会触发中断并调用接收回调函数,此函数会发送信号量唤醒线程,此时线程会马上读取接收到的数据。 ```c static void serial_thread_entry(void *parameter) { char ch; while (1) { /* 从串口读取一个字节的数据,没有读取到则等待接收信号量 */ while (rt_device_read(serial, -1, &ch, 1) != 1) { /* 阻塞等待接收信号量,等到信号量后再次读取数据 */ rt_sem_take(&rx_sem, RT_WAITING_FOREVER); } /* 读取到的数据通过串口错位输出 */ ch = ch + 1; rt_device_write(serial, 0, &ch, 1); } } ```
4
个回答
默认排序
按发布时间排序
兜兜里有啥
2023-02-15
这家伙很懒,什么也没写!
有没有可能你这个串口和finsh组件的串口是同一个
mii
2023-02-15
这家伙很懒,什么也没写!
使用STM32的奇偶校验,请把数据位配置为9
JAY_71
2023-02-16
栈溢出
uart_rx_ind()是串口接收回调函数,中断接收每次进中断都会触发一次。你可以加个计数,一共会释放9次信号量,官方给的例程应该可以的,但是不要在uart_rx_ind()中仿真打断点,这个回调函数本质上会在串口中断中执行,打断点会导致后面数据收不到。之前开发试过打断点收到的是2字节数据
撰写答案
登录
注册新账号
关注者
2
被浏览
1.5k
关于作者
link11
这家伙很懒,什么也没写!
提问
7
回答
0
被采纳
0
关注TA
发私信
相关问题
1
STM32F103RCT6 串口接收数据不正确
2
串口怎样接收int类型数据?
3
串口缓存怎么清除????
4
STM32F407zgt6的串口
5
串口一边读数据,一边写数据
6
RT-thread studio串口发送,接收只能最大长度3位
7
micropython库串口问题
8
串口接受不定长数据为什么只返回第一个字节?
9
Ymodem的msh命令ry希望添加能自定义保存路径选项
10
libmodbus主机接收数据概率性丢失前3个字节和最后一个字节
推荐文章
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
【RT-Thread】【ci】【scons】将ci.attachconfig.yml和scons结合使用
2
Rt-thread中OTA下载后,bootloader不搬程序
3
ulog 日志 LOG_HEX 输出时间改为本地日期时间
4
在RT-Thread Studio中构建前执行python命令
5
研究一了一段时间RTT,直接标准版上手太难,想用nano,但又舍不得组件
热门标签
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
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
9
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
7
次点赞
xiaorui
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部