一些函数的使用问题

2019-07-22 14:55发布

1.CRC检验函数:uint16_t Crc16(uint16_t ui16Crc, //CRC校验值的初始值,如果缓冲区都是需要校验的数,写0即可const uint8_t * pui8Data, //缓冲区
uint32_t ui32Count)//缓冲区有多少个字节
uint8_t buf[6]={0x01,0x02,0x03,0x04,0x05,0x06};
uint16_t crc,crc1;
        crc = GetCRC16(buf,6);          //计算CRC校验值,自己写的查表法函数
        crc1=Crc16(0,buf,6);      //TIVA自带的函数

程序运行结果
12.jpg
CRC计算软件结果(高低相反)
123.jpg
问题:为什么TIVA自带的函数计算出来不一样?问题在哪呢


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
djz1992
1楼-- · 2019-07-24 00:44
dirtwillfly 发表于 2016-5-17 14:56
sprintf函数还是比较耗资源的,堆栈空间不够就经常跑飞

是嘛,我把sprintf函数注释掉,发送固定的一长串就可以的,这个函数是不是用错了?还是有什么要求?或者我把一长串字符串分段,需要float转字符串的再用sprintf
djz1992
2楼-- · 2019-07-24 03:46
dirtwillfly 发表于 2016-5-17 14:56
sprintf函数还是比较耗资源的,堆栈空间不够就经常跑飞

ADCSequenceConfigure(ADC0_BASE,0,ADC_TRIGGER_TIMER, 0);
IntPrioritySet(INT_ADC0SS0,0);//优先级0。。。       
。。。
IntPrioritySet(INT_TIMER0A,1);//优先级1


我设置ADC采样为定时器触发,ADC中断优先级0,定时器中断优先级1.
我在ADC中断和定时器中断里加断点,发现先进的定时器中断。是不是优先级设置没有生效呢?该怎么判断?
dirtwillfly
3楼-- · 2019-07-24 06:55
djz1992 发表于 2016-5-17 15:46
ADCSequenceConfigure(ADC0_BASE,0,ADC_TRIGGER_TIMER, 0);
IntPrioritySet(INT_ADC0SS0,0);//优先级0。 ...

这样判断不出的。你使能中断嵌套,在低优先级的中断服务程序里等待一个很长的时间,在这个时间里去触发高优先级中断源,看能不能正确触发。
1988020566
4楼-- · 2019-07-24 11:22
CRC的程序哪来的?
1988020566
5楼-- · 2019-07-24 14:23
 精彩回答 2  元偷偷看……
smilingangel
6楼-- · 2019-07-24 18:52
crc16校验的比较常用的。

一周热门 更多>