打印

APM32F103VC串口通信问题

[复制链接]
3229|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
thinkdream|  楼主 | 2025-5-14 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 thinkdream 于 2025-5-14 10:15 编辑

写个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

是什么问题?如何解决

使用特权

评论回复

相关帖子

沙发
yueguang3048| | 2025-5-16 09:20 | 只看该作者
本帖最后由 yueguang3048 于 2025-5-16 09:21 编辑

1.检查你的线是否可靠连接,搞短一些,GND一定要连接好;
2.程序debug一下,把USART2调好了,再搞USART1;3.APM32F103VC应该完全与STM32F103VC一模一样的

使用特权

评论回复
板凳
thinkdream|  楼主 | 2025-5-16 09:33 | 只看该作者
yueguang3048 发表于 2025-5-16 09:20
1.检查你的线是否可靠连接,搞短一些,GND一定要连接好;
2.程序debug一下,把USART2调好了,再搞USART1;[ ...

我已经独立测试了usart 1-4 也更换了电脑端的USB转usart板子,波特率降低,换线还是一个样子。使用极海的APM32F10x_SDK_V1.8,写法参考demo。我换STM的程序先试下。

使用特权

评论回复
地板
yueguang3048| | 2025-5-16 16:02 | 只看该作者
thinkdream 发表于 2025-5-16 09:33
我已经独立测试了usart 1-4 也更换了电脑端的USB转usart板子,波特率降低,换线还是一个样子。使用极海的 ...

之前问过APM的厂家 他说直接把STM32的程序烧进去就行   当时直接震惊

使用特权

评论回复
5
Gfan| | 2025-5-16 17:15 | 只看该作者
串口通信问题看具体现象,硬件连接问题的可能性较大,建议先将串口TX/RX连起来,测试自发自收是否正常哈

使用特权

评论回复
6
和谐智者| | 2025-5-16 23:36 | 只看该作者
感觉这是你的时钟配置不稳导致的呀

使用特权

评论回复
7
thinkdream|  楼主 | 2025-5-17 11:09 | 只看该作者
和谐智者 发表于 2025-5-16 23:36
感觉这是你的时钟配置不稳导致的呀

时钟不稳定的话,不应该每次发送同样的字符收到的也是固定的字符,根据对应关系我写个对照表不是不能用

使用特权

评论回复
8
thinkdream|  楼主 | 2025-5-19 15:44 | 只看该作者
确实是时钟配置有问题,外部晶振频率设置错误,没有发现。感谢大家!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝