OpenEdv-开源电子网

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

stm32+ttl串口模块收发问题

[复制链接]

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2014-10-21 10:55:23 | 显示全部楼层 |阅读模式
5金钱
1.定义table【】数组用于接收数据并将前7个数据12864屏幕显示,当stm32 Rx断开的时候有一两个数据循环跳动,当接上电阻后悬空,页面显示全为0,而接到电路上以后发送端不发数据,屏幕竟然显示固定几个常数,重新启动后仍是那几个数据,发送端发送单片机接收后屏幕一直显示接收到数据。
2.单片机接收数据和发送数据不同步,开启单片机稳定后发送端发送数据0~255,单片机接收的第一个数据不是00,而是246。
注:串口初始化是仿照原子哥串口1,接收中断如下:(由于不中断接收,定义两个数组,第一个接收完成另一个接收同时在主程序中第一个用于写入24c512)
void USART2_IRQHandler(void)
{

    if(USART2->SR&(1<<5))
    {
        if(table_flag == 0)
        {
                table[i_num2] = USART2->DR;
                i_num2++;
                if(i_num2 == 128)
                {
                        table_flag = 1;
                        i_num2 = 0;
                        write_flag = 1;
                }
        }
       else
      {
              table1[i_num2] = USART2->DR;
              i_num2++;
              if(i_num2 == 128)
             {
                   table_flag = 0;
                    i_num2 = 0;
                   write_flag = 2;
            }
     }

  }
}求指导,谢谢~~

最佳答案

查看完整内容[请看2#楼]

悬空的时候抖动很正常。 接固定电平倒是应该固定才是。 另外,你显示的内容,可能是数组里面原来就有的值,你初始化之后,对数组所有元素清零了么? 然后RX接固定电压,然后按复位,再试试看。
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-21 10:55:24 | 显示全部楼层
悬空的时候抖动很正常。
接固定电平倒是应该固定才是。
另外,你显示的内容,可能是数组里面原来就有的值,你初始化之后,对数组所有元素清零了么?
然后RX接固定电压,然后按复位,再试试看。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
 楼主| 发表于 2014-10-22 12:12:51 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
数组初始化0以后只是接收数据,没再使用,今天问公司工程师说应该是每次芯片启动自动发送芯片参数,所以导致以上的问题。

因为波特率2400数据不间断发送64K,所以本来定义两个数组,循环接收、存储,但是在实际过程中发现,两个数组切换界点会导致数据接收错位,如循环发00 01,第一个数组最后始终接收到01,第二个数组最后始终接收到00,测试几次后无法,转而定义一个大数组分为两部分,同样循环接收、存储,接收存储正常,个中原因不得而知了。
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-30 06:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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