单片机 keil c语言字符比较函数的使用 使用strcmp();
单片机 keilc语言字符比较函数的使用 使用strcmp();strcmp()的介绍、32单片机中的使用示例注意事项strcmp()的介绍、这是菜鸟教程的介绍:C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。菜鸟的链接32单片机中的使用示例1.要在单片机中使用我们要先添加头
·
单片机 keil c语言字符比较函数的使用 使用strcmp();
strcmp()的介绍、
这是菜鸟教程的介绍:C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
菜鸟的链接
32单片机中的使用示例
1.要在单片机中使用我们要先添加头文件:string.h
不然程序会出现警告,程序不会有正常。
main.c(35): warning: #223-D: function “strcmp” declared implicitly if( strcmp( (char *) USART_RX_BUF,“ABC\0”)==0);
2.然后比较即可,
这里用串口中断接收的u8 字符数组与 ”ABC“等自定义字符比较。利用用了正点原子串口实验代码,
void USART1_IRQHandler(void) //串口1中断服务程序
{
u8 Res;
#if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS为真,则需要支持OS.
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾)
{
Res =USART_ReceiveData(USART1); //读取接收到的数据
if((USART_RX_STA&0x8000)==0)//接收未完成
{
if(USART_RX_STA&0x4000)//接收到了0x0d
{
if(Res!=0x0a)USART_RX_STA=0;//接收错误,重新开始
else USART_RX_STA|=0x8000; //接收完成了
}
else //还没收到0X0D
{
if(Res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收
}
}
}
}
#if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS为真,则需要支持OS.
OSIntExit();
#endif
}

注意事项
1.注意添加头文件。string.h
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)