欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1738|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

STM32 CAN轉(zhuǎn)USART問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:540281 發(fā)表于 2019-5-16 22:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最近在做一個(gè)CAN轉(zhuǎn)USART的工具,主要是把特定格式發(fā)回來(lái)的CAN數(shù)據(jù),解析之后通過(guò)串口轉(zhuǎn)發(fā)回來(lái),一包數(shù)據(jù)是有多幀CAN數(shù)據(jù)轉(zhuǎn)換回來(lái)的,長(zhǎng)度不固定,如果前一包數(shù)據(jù)長(zhǎng)度較長(zhǎng),后一包數(shù)據(jù)就會(huì)把上一包多出來(lái)的數(shù)據(jù)也打印出來(lái),試過(guò)每次printf完一包數(shù)據(jù)之后,把數(shù)組通過(guò)memset函數(shù)清零,但是依然不行,求大神支招

我是每次中斷里把CAN每一幀數(shù)據(jù)解析,每一次進(jìn)中斷都會(huì)把解析到需要的數(shù)據(jù)存到一個(gè)全局變量X的數(shù)組里面,在多次進(jìn)中斷,解析完之后,就在主函數(shù)里打印全局變量X
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2019-5-17 09:01 | 只看該作者
你要好好規(guī)劃好存儲(chǔ)數(shù)據(jù)的地方,并能區(qū)分:
1、上個(gè)包數(shù)據(jù)放在何處?
2、這次包又放在了哪進(jìn)?
3、下個(gè)包來(lái)了,這次包又如何變成了上個(gè)包?
4、包是什么概念,他是如何被界定的,大小多少……
這此都是邏輯問(wèn)題,規(guī)劃好后,畫成框圖,再依框圖寫程序,不難。
回復(fù)

使用道具 舉報(bào)

板凳
ID:540281 發(fā)表于 2019-5-17 10:04 | 只看該作者
yzwzfyz 發(fā)表于 2019-5-17 09:01
你要好好規(guī)劃好存儲(chǔ)數(shù)據(jù)的地方,并能區(qū)分:
1、上個(gè)包數(shù)據(jù)放在何處?
2、這次包又放在了哪進(jìn)?

是這樣的,
1、每次解析出來(lái)的數(shù)據(jù),也就是一包數(shù)據(jù),我會(huì)按每幀的方式放在一個(gè)全局變量的數(shù)組里面,也就是一個(gè)數(shù)組,前8個(gè)字節(jié)存第一幀,8-16存第二幀,16-24第三幀,結(jié)束之后,這個(gè)全局變量就是一包;
2、然后這次包來(lái)了的話,依舊是把它按上一包的方式,覆蓋在這個(gè)全局變量里面;
3、下包來(lái)了,依然是解析出來(lái),放在上一包上面
4、包的概念主要是,多幀解析之后組合成一包,比如說(shuō)一幀8個(gè)字節(jié),這次這一包是3幀,這三幀就會(huì)組成一包,大小的話,由第一幀里面的某個(gè)數(shù)據(jù)表示;比如說(shuō)第一包是00 00 07 00 00 00 00 00,這里的07就是長(zhǎng)度,表示7個(gè)字節(jié),這一包完整的一包就是,00 00 07 00 00 00 00 00    01 xx xx xx 00 00 00 00,這里就是一包;

我現(xiàn)在遇到的問(wèn)題是,如果上一包數(shù)據(jù)長(zhǎng)度比這一包數(shù)據(jù)長(zhǎng)度長(zhǎng)的話,這一包的數(shù)據(jù)除了原本需要有的數(shù)據(jù)以外,還會(huì)多出來(lái)上一包數(shù)據(jù)未被覆蓋的數(shù)據(jù),導(dǎo)致一包數(shù)據(jù)不對(duì),這里我嘗試過(guò)打印完數(shù)據(jù)之后,用memset函數(shù)給這個(gè)全局變量清零,但是直接全部數(shù)據(jù)都亂了,還未找到原因;
回復(fù)

使用道具 舉報(bào)

地板
ID:123289 發(fā)表于 2019-5-17 11:14 | 只看該作者
本帖最后由 yzwzfyz 于 2019-5-18 07:59 編輯

這是你的方案,而你已經(jīng)認(rèn)識(shí)到這個(gè)方案不能解決你遇到的問(wèn)題了,那就設(shè)法改進(jìn)方案。
“覆蓋”出問(wèn)題,就讓它“不復(fù)蓋”好了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表