单片机中接收到奥串口的指令一般为字符串,如果使用strncmp比较是否为我们的指令集中的指令,则不能区分大小写,这里可以使用strcasecmp( )函数和strncasecmp( )函数,来对接收到的字符串指令进行接收比较,并且可以不区分大小写,包含头文件include“stdio.h”
下面对strcasecmp( )函数和strncasecmp( )函数的原型以及应用进行介绍:
strcasecmp( )函数说明:
strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。
返回值 若参数s1和s2字符串相同则返回0。s1长度大于s2长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0的值.
#include ”stdio.h“
#include “string.h”
#include ”ctype.h“
int strcasecmp(const char *s1, const char *s2)
{
int c1, c2;
do {
c1 = tolower(*s1++);
c2 = tolower(*s2++);
} while(c1 == c2 && c1 != 0);
return c1 - c2;
}
int main(void)
{
int n = 4;
char str1[] = "Acef";
char str2[] = "ACEFd";
printf("strcasecmp(str1, str2) = %d/n", strcasecmp(str1, str2));
return 0;
}
strncasecmp()函数说明:
strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异
返回值 :若参数s1和s2字符串相同则返回0 s1若大于s2则返回大于0的值 s1若小于s2则返回小于0的值
#include ”stdio.h“
#include “string.h”
#include ”ctype.h
int mystrncasecmp(const char *s1, const char *s2, int n)
{
int c1, c2;
do {
c1 = tolower(*s1++);
c2 = tolower(*s2++);
} while((--n > 0) && c1 == c2 && c1 != 0);
return c1 - c2;
}
int main(void)
{
int n = 4;
char str3[] = "ABCf";
char str4[] = "abcd";
printf("mystrncasecmp(str3, str4, n) = %d/n", mystrncasecmp(str3, str4, n));
return 0;
}
关键字:stm32 指令集合 大小写
引用地址:
stm32指令集合不区分大小写
推荐阅读最新更新时间:2024-03-16 16:14
STM32Keil下编程实现蜂鸣器长鸣
前言 基于STM32F103C8T6在Keil下编程实现蜂鸣器的长鸣 一、原理图 1.STM32F103C8T6 STM32F103C8T6是ST在2007年发布的一款MCU,截止目前ST已经发布了速度高达400MHz的STM32H7。三点好处,一是封装比较大,方便初学者焊接,二是价格低廉,学习成本比较低,三是网上有大量的资料供初学者学习使用。 2.BELL蜂鸣器 二、Keil代码 1.Beep.c 代码如下: #include stm32f10x.h #include Beep.h void BEEP_Init(void) { GPIO_InitTypeDef GPIO_Structure;/
[单片机]
STM32移植lwip之建立web服务器
本篇目标:在之前能ping通pc机的工程基础上搭建web服务器,借鉴官方web服务器的程序与网页,能够用pc机浏览器访问web服务器,并返回设置的网页 材料准备: 基础工程:修改后能ping通pc机的工程(STM32官方移植lwip修改代码) 搭建工程:最终搭建好的web服务器工程(STM32搭建web服务器工程) 调试工具:用来调试tcp连接下的数据接收(网络调试助手) 测试浏览器:这里使用的是Chrome谷歌浏览器 ps:通过修改官方搭建web服务器的代码,来了解搭建的过程,其中暂时去掉了ssi和cgi的程序,仅仅实现网页数据的返回和网页的跳转,并将官方的代码简化到相对最简,以便以后的学习之用 浏览器请求指令探索
[单片机]
STM32 ADC转换时间
STM32F103XX的ADC的采样时钟最快14MHz,最快采样率1MHz。 ADC时钟: 这个ADC时钟是从哪来的呢。我们看下面这个STM32的时钟结构图: 我们大多使用STM32的最快PCLK2系统时钟72MHz。 ADCCLK的时钟由72MHz的6分频能瞒住14MHz以下的要求 为12MHz。 RCC_ADCCLKConfig(RCC_PCLK2_Div6); //72M/6=12,ADC最大时间不能超过14M ADC转换时间: 有如下公式: TCONV = 采样时间+ 12.5 个周期 其中12.5个周期是采集12位AD时间是固定的,另外一个采样时间可以取下面几个参数由SMPx 寄存器控制,每个通道可以单独配置
[单片机]
STM32串口通信-USART全面讲解
通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个全双工的串行通信设备;UART(Universal Asynchronous Receiver and Transmitter)是在USART基础上裁掉了同步通信功能,只有异步通信。 USART满足外部设备对工业标准NRZ异步串行数据格式的要求,并且使用了小数波特率发生器,可以提供多种波特率。USART支持同步单向通信和半双工单线通信;还支持局域互连网络、智能卡协议与LrDA SIR ENDEC规范;还支持DMA,可实现高速数据通信。 如下图是USART功能框图,我们将对此框图进
[单片机]
STM32 多个个APP的跳转
#define IapApplicationAddress 0x08000000//这里是要跳转的APP的起始地址。 typedef void (*pFunction)(void); uint32_t JumpAddress; unsigned int systime; pFunction Jump_To_Application; void JumtoIap(void){ JumpAddress = *(__IO uint32_t*) (IapApplicationAddress + 4); Jump_To_Application = (pFunction) JumpAddre
[单片机]
STM32开发笔记4: STM32F407 UART的使用方法
STM32F4内嵌4个通用异步/同步收发器(USART1、USART2、USART3、USART6)和两个通用异步收发器(UART4和UART5)。本文讲解此6个串行口,在异步模式下的使用方法,如不加说明,以USART1为例。 可以按照下述步骤,对通用异步串行口进行设置。 1、打开config.h文件,对如下图所示的宏进行设置,0x0c表示将当前串行口UART1的波特率设为115200bps,无效验。 2、打开main.c文件,可以在其中断服务函数中,完成接收逻辑的代码编写,如下图所示。此代码表明,当串行口收到1个字节的数据后,将触发串行口中断,在中断服务程序中,将接收到的1字节数据取出,送u8_Ua
[单片机]
STM32学习之路(二)——MDK-ARM开发过程简介
一,准备MDK-ARM+JLINK+STM32软件包 1,在 http://www.mcu123.com/news/Soft/embsof/arm/200908/505.html 下载RealView MDK-ARM 3.80a(MDK-ARM V3.80a,MDK3.80a)版本 mdk380a_mcu123.rar http://esoft.mcu123.com/MCU123_temp_0080309@/arm/mdk380a_mcu123.rar (注册机自行查找,安装过程略) 2,在 http://www.segger.com/cms/jlink-software.html 下载Software
[单片机]
意法半导体推出STM32互连型系列微控制器
2009年3月11日,微控制器IC全球领先供应商意法半导体(纽约证券交易所代码:STM)推出一全新系列的STM32微控制器,新产品以片上集成各种高性能工业标准接口为主打特色,且STM32不同型号产品在引脚和软件上具有完美的兼容性,这将让更多的应用从中受益。
全新STM32互连型(Connectivity)系列微控制器增加一个全速USB(OTG)接口,使终端产品在连接另一个USB设备时既可以充当USB主机又可充当USB从机;还增加一个硬件支持IEEE1588精确时间协议(PTP)的以太网接口,用硬件实现这个协议可降低CPU开销,提高实时应用和联网设备同步通信的响应速度。
全新互连型系列还是
[半导体设计/制造]