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

【求助】多个STM32相连的冲突问题

[复制链接]
newton64 提问时间:2018-3-14 14:42 /
阅读主题, 点击返回1楼
收藏 评论15 发布时间:2018-3-14 14:42
15个回答
newton64 回答时间:2018-3-14 17:00:49
wenyangzeng 发表于 2018-3-14 16:49
uart不应该关闭,假设接收缓冲区是:Rx_buf[100],
for(i=0;i

感谢您的回复,

您说的我理解了,不过是这样,诸如您说的那个自己写的缓存我也有,我每次也都会清空。错误是发生在用指令从硬件把数据读到缓存时,数据就已经不对了。

HAL_UART_Receive_DMA(&huart1,pR,BUFFERSIZE);

我用的DMA,所以这句里的pR就是我指向缓存的指针。

#define BUFFERSIZE 80                                
uint32_t ReceiveBuff[BUFFERSIZE];        //接收缓冲匿
uint8_t *pR=(uint8_t *)&ReceiveBuff[0];
(这里的8位32位的原因是因为我用CRC32,所以就转了一下)

也就是说当数据到ReceiveBuff的时候数据就已经错了,我其实是有个疑问:是不是有个硬件缓存在UART端口,我看不见,它会接收垃圾信息和我这次的有用信息合并,然后当我读操作时,会一并读到缓存里,从而我看到的数据就错了?
wenyangzeng 回答时间:2018-3-14 17:02:16
本帖最后由 wenyangzeng 于 2018-3-14 17:03 编辑
newton64 发表于 2018-3-14 17:00
感谢您的回复,

您说的我理解了,不过是这样,诸如您说的那个自己写的缓存我也有,我每次也都会清空。错 ...

让ReceiveBuff[xx]=0x00其实这个USART接收不用DMA好像更容易数据处理
newton64 回答时间:2018-3-14 17:08:20
wenyangzeng 发表于 2018-3-14 17:02
让ReceiveBuff[xx]=0x00其实这个USART接收不用DMA好像更容易数据处理

谢谢回复,

我里面也有这样一段:

/*        清空接收缓存匿        */
                for(int i = 0; i < Rx_len ; i++)
                                ReceiveBuff=0;

用来清这个缓存。
但如我说的,第二次的数据来的时候,进ReceiveBuff后就不对了,进之前我可以肯定里面是全0的。

确实也许不用DMA会简单很多,但我目前这个不太方便改了,而且感觉是一些新手错误,毕竟我刚接触这个。可能我描述的不够清楚,您有任何质疑我都很乐意详述,谢谢。
wenyangzeng 回答时间:2018-3-14 17:57:07
newton64 发表于 2018-3-14 17:08
谢谢回复,

我里面也有这样一段:

数组!数组!数组!!
ReceiveBuff[i++]=0;而非ReceiveBuff=0;
newton64 回答时间:2018-3-14 18:29:48
wenyangzeng 发表于 2018-3-14 17:57
数组!数组!数组!!
ReceiveBuff=0;而非ReceiveBuff=0;

/*        清空接收缓存匿        */
                for(int i = 0; i < Rx_len ; i++)
                                ReceiveBuff=0;

额 是这么写的 怎么写帖子里就那样了呢

  1. /*        清空接收缓存匿        */
  2.                 for(int i = 0; i < Rx_len ; i++)
  3.                                 ReceiveBuff[i]=0;
复制代码
dsjsjf 回答时间:2018-3-15 15:43:24
示波器看线上的数据对的,那么基本就是软件的问题了,检查一下你的数据解析部分,还有是否有指针操作

评分

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

查看全部评分

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