贴上代码,记录遇到的问题:这部分代码只是记录调试遇到的问题,和当时的一些想法,欢迎拍砖。
void uart4_task(void *pdata)
{
//INT8U RxBuffer1[MAX_SERIAL_LEN4];//UART3D 接收缓存数组是全局的和局部的效果一样
unsigned char i=0,RxCounter1=0,checksum=0;
unsigned char bTemp1,bTemp2;
while(1){
if(USART_GetFlagStatus(UART4, USART_FLAG_RXNE) != RESET)
{
// USART_ClearFlag(UART4, USART_FLAG_RXNE);
RxBuffer1[RxCounter1++] = USART_ReceiveData(UART4); //将读寄存器的数据缓存到接收缓冲区里
USART_ClearFlag(UART4, USART_FLAG_RXNE);
if(RxBuffer1[RxCounter1-1]=='$'){RxBuffer1[0]='$'; RxCounter1=1;} //判断起始标志
if(RxBuffer1[RxCounter1-1]==0x0a) //判断结束标志是否是0x0d 0x0a
{
// SendChar3 ('A'); //201402071101
// SendChar3 (RxCounter1); //201402071101 // 为什么RxCounter1的值才是17
// //usart4_flag=1;
// SendChar3 ('A'); //201402071101
//20140210
for(i=1; i< RxCounter1-5; i++) {checksum=checksum^RxBuffer1[