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自带的函数
程序运行结果
CRC计算软件结果(高低相反)
问题:为什么TIVA自带的函数计算出来不一样?问题在哪呢
是嘛,我把sprintf函数注释掉,发送固定的一长串就可以的,这个函数是不是用错了?还是有什么要求?或者我把一长串字符串分段,需要float转字符串的再用sprintf
ADCSequenceConfigure(ADC0_BASE,0,ADC_TRIGGER_TIMER, 0);
IntPrioritySet(INT_ADC0SS0,0);//优先级0。。。
。。。
IntPrioritySet(INT_TIMER0A,1);//优先级1
我设置ADC采样为定时器触发,ADC中断优先级0,定时器中断优先级1.
我在ADC中断和定时器中断里加断点,发现先进的定时器中断。是不是优先级设置没有生效呢?该怎么判断?
这样判断不出的。你使能中断嵌套,在低优先级的中断服务程序里等待一个很长的时间,在这个时间里去触发高优先级中断源,看能不能正确触发。
一周热门 更多>