USART_RX_STA=0; //串口中断接变量的理解,
- 正点原子代码串口的使用,其中USART_RX_STA 变量是接收状态标记,
如果USART_RX_STA = 0;的时候是数组重新从第0位开始接收的时候
注意:当想要从串口发送更改数组里面的值时要重新把USART_RX_STA 的值设为0
2,若想程序执行的时候更改串口发送的值,此时要把USART_RX_STA 的值设为0
(注意只要执行一次USART_RX_STA = 0;的操作就行),可以在中断服务函数里操作。
每当接收完一次数据时,把USART_RX_STA 的值设为0;
3,void *memset(void *s, int c, size_t n);
参数说明
- s:指向要填充的内存区域的起始地址的指针。这个内存区域必须有效,并且用户有权限进行写操作。
- c:要设置的值,通常是一个整数,但在实际填充时会被转换为unsigned char类型。如果c的值超出了unsigned char的范围(0-255),则只有其低8位会被用于填充。
- n:要填充的字节数。这个值决定了s所指向的内存区域中多少个字节将被设置为c。如果n的值大于实际可用的内存区域大小,可能会导致缓冲区溢出问题。
用法
int arr[10];
memset(arr, 0, sizeof(arr)); // 将数组arr的所有元素设置为0
需要注意的是,对于非字符类型的数组(如int数组),如果设置的值不是0或-1(在补码表示中,所有字节都是1),则每个元素可能不会被正确设置为预期的值,因为memset是按字节操作的。
正点原子的代码用法:
USART_RX_STA=0;
memset(USART_RX_BUF,0,USART_REC_LEN); //串口接收缓冲区清零