Giter VIP home page Giter VIP logo

Comments (6)

596142041 avatar 596142041 commented on September 25, 2024

你好,能否把校验部分代码发出来看看,注意看一下是不是高字节和低字节错位导致的

from canbootloader-qt.

zangege avatar zangege commented on September 25, 2024

我用的是之前下的一个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.

596142041 avatar 596142041 commented on September 25, 2024

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.

zangege avatar zangege commented on September 25, 2024

用你的这个校验代码后,还是校验不过,我把校验值发出来看了下,确实是高低字节反了,我看你的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.

596142041 avatar 596142041 commented on September 25, 2024

加我QQ吧,981775097

from canbootloader-qt.

zangege avatar zangege commented on September 25, 2024

flash原因是我用的hex文件,但bootloader里又加了地址偏移,现在刷写已经正常了,谢谢大神!QQ加不上,有问题验证。。。

from canbootloader-qt.

Related Issues (3)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.