21ic问答首页 - APM32F103VC串口通信问题
APM32F103VC串口通信问题
本帖最后由 thinkdream 于 2025-5-14 10:15 编辑
写个pelco-d的处理程序从USART2收数据判断执行,并通过USART1再输出。程序如下:
写个pelco-d的处理程序从USART2收数据判断执行,并通过USART1再输出。程序如下:
- void USART2_Isr(void)
- {
- uint8_t receivedByte;
- // 检查是否接收到数据
- if (USART_ReadIntFlag(USART2, USART_INT_RXBNE))
- {
- receivedByte = (uint8_t)USART_RxData(USART2); // 读取接收到的数据,低8位
- USART_TxData(USART1, receivedByte); // 将接收到的数据发送到 USART1
- // 存储数据到缓冲区
- if (pelcoIndex2 < PELCO_D_FRAME_SIZE)
- {
- pelcoBuffer2[pelcoIndex2++] = receivedByte;
- // 检查是否接收到完整帧
- if (pelcoIndex2 == PELCO_D_FRAME_SIZE)
- {
- pelcoIndex2 = 0; // 重置接收索引
- // 调用 PELCO-D 数据帧处理函数
- parse_pelcod_command(pelcoBuffer2);
- }
- }
- USART_ClearIntFlag(USART2, USART_INT_RXBNE);
- }
- }

实际发送数据(HEX):ff 01 00 14 0f 0f 13

USART2实际收到(断点获取):ff 01 00 28 1f 1f 27

部分数据向左移动一位
USART1实际推出:ff c1 c0 d4 cf cf c3

部分数据高两位变为1
是什么问题?如何解决
赞0
评论
2025-05-19
赞0
时钟不稳定的话,不应该每次发送同样的字符收到的也是固定的字符,根据对应关系我写个对照表不是不能用
评论
2025-05-17
赞0
评论
2025-05-16
赞0
评论
2025-05-16
赞0
之前问过APM的厂家 他说直接把STM32的程序烧进去就行 当时直接震惊
评论
2025-05-16
赞0
我已经独立测试了usart 1-4 也更换了电脑端的USB转usart板子,波特率降低,换线还是一个样子。使用极海的APM32F10x_SDK_V1.8,写法参考demo。我换STM的程序先试下。
评论
2025-05-16
赞0
1.检查你的线是否可靠连接,搞短一些,GND一定要连接好;
2.程序debug一下,把USART2调好了,再搞USART1;
评论
2025-05-16
您需要登录后才可以回复 登录 | 注册