Comments (6)
你好,能否把校验部分代码发出来看看,注意看一下是不是高字节和低字节错位导致的
from canbootloader-qt.
我用的是之前下的一个usbxxx他那个上位机提供的stm32代码,我看了一下,他那个校验是查表校验的,和你的上位机的好像不太一样?这个校验我也没看太懂。。谢谢大神
__inline unsigned short crc16_ccitt(const unsigned char *buf, unsigned int len)
{
register unsigned int counter;
register unsigned short crc = 0;
for( counter = 0; counter < len; counter++)
crc = (crc<<8) ^ crc16tab[((crc>>8) ^ *(unsigned char *)buf++)&0x00FF];
return crc;
}
from canbootloader-qt.
CRC校验参考以下代码,你再试试:
unsigned short int CRCcalc16 (unsigned char *data,unsigned short int len)
{
int i;
unsigned short int crc_res = 0xFFFF;
while(len--)
{
crc_res^=*data++;
for(i = 0;i < 8;i++)
{
if(crc_res&0x01)
{
crc_res = (crc_res>>1)^0xa001;
}
else
{
crc_res = (crc_res>>1);
}
}
}
return crc_res;
}`
你提供的代码是用的查表的方式,结果一样,但是返回的CRC值需要注意一下高字节和低字节的,你把你调用CRC校验函数进行校验的代码分享一下,我看一下
from canbootloader-qt.
用你的这个校验代码后,还是校验不过,我把校验值发出来看了下,确实是高低字节反了,我看你的bootloader程序里是校验的数据最后一个字节是高两位,实际最后一个字节应该是低两位。现在校验可以过了,flash又写不进去了,我再研究研究。。。可以加个大神的微信么?谢谢大神
if(crc_data==((data_temp[data_size-2]<<8)|(data_temp[data_size-1]))){
之前是这样的,
if(crc_data==((data_temp[data_size-1]<<8)|(data_temp[data_size-2]))){
改成这样才对的上
from canbootloader-qt.
加我QQ吧,981775097
from canbootloader-qt.
flash原因是我用的hex文件,但bootloader里又加了地址偏移,现在刷写已经正常了,谢谢大神!QQ加不上,有问题验证。。。
from canbootloader-qt.
Related Issues (3)
- 工程移植到QT5.10.1时出现编译问题 HOT 3
- 下载固件失败 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from canbootloader-qt.