STM32 在keil 下进行 atoi 函数功能测试

发布者:恬淡岁月最新更新时间:2022-05-13 来源: eefocus关键字:STM32  keil  函数 手机看文章 扫描二维码
随时随地手机看文章

STM32 在keil 下进行 atoi 函数功能测试:


源码:

void test_str2num(void)

{

    int a;

    printf("rnrn0x1234 = %d,",atoi("0x1234"));

    printf("rn0x1234 = %d,",atoi("0x1234"));

    printf("rn1234 = %d,",atoi("1234"));

    printf("rn0 = %d,",atoi("0"));

    printf("rn01234 = %d,",atoi("01234"));

    printf("rn0.1234 = %d,",atoi("0.1234"));

    printf("rn-1234 = %d,",atoi("-1234"));

    printf("rn1234ab = %d,",atoi("1234ab"));

    printf("rnabc1234 = %d,rn",atoi("abc1234"));

}

 


输出:


0x1234 = 0,

0x1234 = 0,

1234 = 1234,

0 = 0,

01234 = 1234,

0.1234 = 0,

-1234 = -1234,

1234ab = 1234,

abc1234 = 0,

由此可以看到 atoi 并不能将16进制的字符串转为数字,会忽略前面的若干个0,会忽略后面的若干个非数字字符。能够把负数字符串转换为数字。


也就是:它只能转换10进制字符串为数字(包括负数),其他的进制的无能为力。

关键字:STM32  keil  函数 引用地址:STM32 在keil 下进行 atoi 函数功能测试

上一篇:STM32 在keil下进行strtol函数的功能测试
下一篇:STM32F446VE 在MDK下编译测试大小端模式

推荐阅读最新更新时间:2024-11-09 11:47

STM32如何通过 printf 打印出浮点数
一、问题 使用 IAR 开发 STM32,发现无法通过 printf 重定向到串口打印出浮点数。代码如下: 输出结果如下: 可见,浮点数部分无法正常显示。 二、解决方法 这是由于 IAR 默认选择的 printf 库不支持浮点数的的输出。可在设置选项中修改。如下:默认使用 small,改为 auto 即可。 三、备注 在不修改设置的情况下,尝试过如下两种代码解决。一种是通过 sprintf 将浮点数转换成字符串输出,另一种是分解整数和小数部分,分别输出。第一种方法也是不可行的,只有分解可以。 代码如下: /* * cyang 2018/2/27 * mcu printf float value */ #include 《
[单片机]
STM中SPI运用的NSS引脚解读
STM的NSS引脚 首先我们说该引脚有两个电平需要注意,一个是与NSS引脚连接的外部电平,一个是NSS引脚的内部电平。 然后我们知道在SPI通信的时候master必须在NSS引脚的内部电平为高电平时才得以进行通信,slaver在NSS引脚的内部电平为低电平时才可以通信。这是前提条件。 我们知道NSS引脚电平的管理有两种方式,一个是软件管理和硬件管理。但当为硬件管理时(SSM=0),NSS管脚的内部电平由与NSS连接的外部电平决定,即外面是高电平,则NSS引脚的内部电平也为高电平。如果你想工作在该模式下,那么master的NSS引脚必须连接高电平,slaver必须连接低电平(一般接地)。软件管理模式(SSM=1)则是通过SS
[单片机]
STM32入门学习笔记之uCOS-II系统移植3
⑤这两个函数都用于任务切换,它们的本质都是触发PendSV中断,具体切换过程在PendSV的中断函数中进行,其中OSCtxSw是任务级切换,OSIntCtxSw是中断级切换,是从中断退出时切换到一个任务中,从中断切换到任务的过程中,CPU的寄存器入栈工作已经完成。 OSCtxSw PUSH {R4, R5} LDR R4, =NVIC_INT_CTRL ;触发PendSV异常 LDR R5, =NVIC_PENDSVSET STR R5, ;向NVIC_INT_CTRL写入NVIC_PENDSVSET触发PendSV中断 POP {R4, R5} BX LR OSIntCt
[单片机]
标准库函数与基于HAL库函数的说明
开始学习51的时候有的人会直接选择进行对单片机的寄存器进行操作,可以很好的理解单片机的工作原理,对于代码的编写也会后很好的理解,但是在stm32的时候操作寄存器就不太行了,因为stm32的寄存器是51的数十倍,如此多的寄存器根本无法全部记忆,开发时需要经常的翻查芯片的数据手册,此时直接操作寄存器就变得非常的费力了。这是我们就有了其他的操作方式,来简化我们的工作。 一、标准库 STM32有非常多的寄存器,导致了开发困难,所以为此ST公司就为每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx……之类的。在这些 .c .h文件中,包括一些常用量的宏定义,把一些外设也通过结构体变量封装起来,如GPIO口时钟等。所以我们只需
[单片机]
多功能STM32开发工具STM32CubeIDE使用指南
工欲善其事,必先利其器。 STM32Cube生态系统是ST为STM32开发者打造的软件生态,是嵌入式开发的利器。 为提升功能丰富且高能效的STM32系列微控制器的易用性,2019年,意法半导体在STM32Cube软件生态系统中增加了一个免费的多功能STM32开发工具:STM32CubeIDE。 为了和商用集成开发环境(IDE)工具一样好用,STM32CubeIDE充分发挥了意法半导体2017年收购的嵌入式开发工具厂商Atollic的技术优势。这套IDE软件采用行业标准的开放式许可条款,为简化和加快基于STM32的嵌入式设计,新增了STM32专用功能,包括功能强大的STM32CubeMX微控制器配置和项目管理工具。 通过整合
[单片机]
多功能<font color='red'>STM32</font>开发工具STM32CubeIDE使用指南
GD32F303标准库开发:Keil5新建GD32标准库工程
新建GD32工程 步骤1:创建工程模板文件 新建一个文件夹,命名为:GD32 在文件夹GD32里面新建四个文件夹 (1)CMSIS: 存放内核驱动程序和启动引导文件 (2)FWLIB:存放库函数文件 (3)Project:存放工程文件 (4)User: 存放用户程序(主函数) 具体效果图如下: 步骤2:导入GD32固件库 GD32标准固件库下载链接 1. 打开GD32F30x固件库文件 其中需要用到的两个文件:Firmware 和 Template。 2. 导入文件到 CMSIS 文件 (1)导入内核驱动程序 GD32F30x_Firmware_Library_V2.1.3FirmwareCMSIS 中的 4 个
[单片机]
GD32F303标准库开发:<font color='red'>Keil</font>5新建GD32标准库工程
STM32单片机学习总结之中断EXTI (External interrupt)
学习内容: EXTI (External interrupt) 就是指外部中断,通过GPIO 检测输入脉冲,引起中断事件,打断原来的代码执行流程,进入到中断服务函数中进行处理,处理完后,再返回到中断之前的代码中执行。 1、能够打断当前代码执行流程的事件分为异常(exception)和中断(interrupt),并把它们用一个表管理起来,编号为0~15 的称为内核异常,而16 以上的则称为外部中断(外,相对内核而言),这个表就称为中断向量表。把编号从-3 至6 的中断向量定义为系统异常,编号为负 的内核异常不能被设置优先级,如复位(Reset)、不可屏蔽中断 (NMI)、硬错误(Hardfault)。从编号7 开始的为外部中断,
[单片机]
<font color='red'>STM32</font>单片机学习总结之中断EXTI (External interrupt)
stm32 usart奇偶校验如何配置
stm32 usart奇偶校验如何配置?或许你在stm32 usart奇偶校验过程中会遇到如下一些坑,stm32 usart偶校验错误标志位以及出现偶校验错误,奇偶校验位包含在数据位中等等这些可能是你将错误的数据放到DR寄存器中导致的。 在一般情况下,stm32 usart奇偶校验无校验位时,数据位常用8位,当使用就校验位时,数据位应设置为9位。stm32 usart奇偶校验配置方法主要有以下几种: stm32 usart奇偶校验如何配置?如果stm32 usart开启奇偶校验,应在读取数据寄存器时先查看标志位,或者及时进行应用逻辑代码处理,以免发生校验错误标志则丢弃数据等情况出现造成不必要的损失。
[单片机]
<font color='red'>stm32</font> usart奇偶校验如何配置
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved