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

【求助】多个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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版