你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

SRAM 意外复位,数据改变

[复制链接]
xingfudaxia 提问时间:2018-8-1 10:11 /
最近一个项目中,遇到一个奇怪的问题。串口通信引起RAM数据混乱。
使用单片机为STM32F103,使用RS485主动发出数据,,用于监听其他通信口数据的交互。
发送函数
void USART1_ListingSendFunc(uint8_t *Data, uint16_t Buffer_Size)             //串口发送多字节数据
{
        uint16_t i;
       
        while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
        {
                USART_ClearFlag(USART1,USART_FLAG_TXE);
        }

        USART1_SENDMODE();                                            //使能RS485发送
       
        for(i=0;i<Buffer_Size;i++)
        {       
                USART_SendData(USART1, *(Data+i));
                while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);                       
        }
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
        {}
        USART_ClearFlag(USART1,USART_FLAG_TC);                         //清标志位
        USART1_RECVMODE();                                                        //使能RS485接受
}


发送数据是等待发送的形式。接受采用了中断发送,使能了接受中断。
在这种情况下,在发送数据几十分钟后,就会出现发送出一串乱码,之后整个RAM数据就混乱了。
当关闭此发送后,就不再出现这种现象,可以断定应该是串口发送引起的。但是其中原因是什么呢?有没有大神能够给分析下。
收藏 评论4 发布时间:2018-8-1 10:11

举报

4个回答
butterflyspring 回答时间:2018-8-1 11:17:26
你是怎么判断整个ram的数据混乱了?一般先从硬件开始排除,先去除485,悬空TX,几十分钟后看看是否还有问题.还有就是你的测试环境是怎样?软件的话,看看你目前用的是什么模式,轮训?中断?DMA?

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

feixiang20 回答时间:2018-8-2 02:04:48
如果怀疑是串口接收问题,就去查这部分,查下硬件和串口有没有问题

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

toofree 回答时间:2018-8-4 23:00:27
看上去程序没有问题,你用Data指针操作实际定义的数组的时候,有没有可能出现指针越界的情况呢?
也就是说,你应该用成循环数组,类似FIFO的方式,这样可以保证指针不跑出去。

评分

参与人数 2ST金币 +1 蝴蝶豆 +3 收起 理由
xingfudaxia + 1 很给力!
zero99 + 3

查看全部评分

xingfudaxia 回答时间:2018-11-9 13:51:49
toofree 发表于 2018-8-4 23:00
看上去程序没有问题,你用Data指针操作实际定义的数组的时候,有没有可能出现指针越界的情况呢?
也就是说 ...

确实指针溢出了,当接收的数据超过定义的接收buffer时,数据就会出现混乱,在接收数据时,应该加个数限制。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版