详解_详解coredump - CSDN
精华内容
参与话题
  • H.264/AVC视频编解码技术详解

    万人学习 2019-12-29 17:40:12
    H.264/AVC是目前业界应用为广泛的视频压缩编码标准,包含了先进而且较为成熟的视频编码技术。本课程将从原理、标准和实现等多个角度,详细讲述了H.264/AVC视频编码标准的整体架构与技术细节,不但讲解了H.264/AVC...
  • 详解 & 0xff 的作用

    2020-03-24 12:05:29
  • 16进制的作用以及&0xff详解

    千次阅读 2019-12-26 14:54:35
    1、概述 在看源码的时候,发现有好些地方使用了16进制,在此记录一下。 2、为什么用16进制 计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命令或者数据 最早规定ASCII字符集采用的就是8bit(后期...

    1、概述

    在看源码的时候,发现有好些地方使用了16进制,在此记录一下。

    2、为什么用16进制

    1. 计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命令或者数据
    2. 最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit), 8bit用2个16进制直接就能表达出来,不管阅读还是存储都比其他进制要方便
    3. 计算机中CPU运算也是遵照ASCII字符集,以16、32、64的这样的方式在发展,因此数据交换的时候16进制也显得更好
    4. 为了统一规范,CPU、内存、硬盘我们看到都是采用的16进制计算

    3、目前16进制的一些用途

    1. 网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达
    2. 数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式
    3. 一些常用值的定义,比如:我们经常用到的html中color表达,就是用的16进制方式,4个16进制位可以表达好几百万的颜色

    4、&0xFF的作用

    一下内容来自,:link

    首先我们要都知道, &表示按位与,只有两个位同时为1,才能得到1, 0x代表16进制数,0xff表示的数二进制1111 1111 占一个字节.和其进行&操作的数,最低8位,不会发生变化.

    &0xff都有哪些应用:

    4.1 只是为了取得低八位

    通常配合移位操作符>>使用

    例如:java socket通信中基于长度的成帧方法中,如果发送的信息长度小于65535字节,长度信息的字节

    定义为两个字节长度。这时候将两个字节长的长度信息,以Big-Endian的方式写到内存中

    out.write((message.length>>8)&0xff);//取高八位写入地址
    out.write(message.length&0xff);//取低八位写入高地址中
    

    例如,有个数字 0x1234,如果只想将低8位写入到内存中 0x1234&0xff
    0x1234 表示为二进制 0001001000110100

    0xff 表示为二进制 11111111

    两个数做与操作,显然将0xff补充到16位,就是高位补0

    此时0xff 为 0000000011111111

    与操作 1&0 =0 1&1 =1 这样 0x1234只能保留低八位的数 0000000000110100 也就是 0x34

    4.2 保证补码的一致性

    我们只关心二进制的机器数而不关注十进制的值,那么byte &0xff只是对其最低8位的复制,通常配合逻辑或 ‘’|’'使用,达到字节的拼接,但不保证其十进制真值不变

    public static void main(String[] args) {
    		byte b = -127;//10000001
    		int a =  b;
    		System.out.println(a);
    		a =  b&0xff;
    		System.out.println(a);
    	}//输出结果-127,129
    

    乍一看,b是8位的二进制数,在与上0xff(也就是 11111111),不就是其本身吗,输出在控制台结果为什么是129呢?

    首先计算机内的存储都是按照补码存储的,-127补码表示为 1000 0001

    int a = b;将byte 类型提升为int时候,b的补码提升为 32位,补码的高位补1,也就是

    1111 1111 1111 1111 1111 1111 1000 0001

    负数的补码转为原码,符号位不变,其他位取反,在加1,正数的补码,反码都是本身

    结果是 1000 0000 0000 0000 0000 0000 0111 1111表示为十进制 也是 -127

    也就是 当 byte -> int 能保证十进制数不变,但是有些时候比如文件流转为byte数组时候,

    我们不是关心的是十进制数有没有变,而是补码有没有变,这时候需要&上0xff

    本例子中,将byte转为int 高24位必将补1,此时补码显然发生变化,在与上0xff,将高24重新置0,

    这样能保证补码的一致性,当然由于符号位发生变化,表示的十进制数就会变了

    1111 1111 1111 1111 1111 1111 1000 0001 
    
    &
    
    0000 0000 0000 0000 0000 0000 1111 1111
    
    结果是
    
    0000 0000 0000 0000 0000 0000 1000 0001
    

    和原来的补码 一致,但是显然符号位变化了,表示的十进制数发生变化,变为129

    4.3 总结

    java中基本类型从小扩展到大的数据类型时候,正数因为符号位是0,无论如何都是补零扩展,但是负数补零扩展和补符号位扩展完全不同,

    负数补符号位扩展,保证十进制数不变

    例如 byte>>>int -127自动按照补符号位扩展,在高24位补符号位1,表示的十进制数不变

    补零扩展,保证补码的一致性,但是表示的十进制发生变化

    例如,本例中byte提升为int,&0xff的操作

    展开全文
  • STM32 GPIO详解

    万次阅读 多人点赞 2020-07-10 13:52:57
    目录 01、I/O接口电路 1.1、普通输入 1.2、普通输出 1.3、模拟输入 1.4、复用输出 02、管脚复用和重映射 2.1、STMF10X系列 2.1、STMF20X系列 03、相关名词解释 下文将根据STM32F207参考手的中GPIO框图... 上

    目录

    01、I/O接口电路

    1.1、普通输入

    1.2、普通输出

    1.3、模拟输入

    1.4、复用输出

    02、管脚复用和重映射

    2.1、STMF10X系列

    2.1、STMF20X系列

    03、相关名词解释


    下文将根据STM32F207参考手的中GPIO框图讲解GPIO功能。

    01、I/O接口电路

    带FT的是说明可以容忍5V电压的,I/O电路框图

    1.1、普通输入

    普通输入模式下,上拉和下拉电阻(微弱)的存在,共分3种模式

    1. 浮空输入,不使能上拉电阻,不使能下拉电阻

    2. 上拉输入,使能上拉电阻

    3. 下拉输入,使能下拉电阻

    从上面框图得知,输出缓存是被禁止的

    1.2、普通输出

    普通输入模式下,上拉和下拉电阻(微弱)的存在。主要是由于P-MOS和N-MOS的存在分为下列两种模式

    1. 开漏模式:输出寄存器是 0 时,激活 N-MOS, 而输出寄存器是 1 时,端口保持高阻态(P-MOS 不会被使能)

    2. 推挽输出: 输出寄存器是 0 时,激活 N-MOS, 而输出寄存器是 1 时,激活 P-MOS

    从上面的框图得知,

    1、在普通输出模式中,TTL施密特触发器是打开的,所以读输入数据寄存器,可以得到 I/O 的状态。

    2、驱动GPIO输出,我们可以采用输出寄存器也可以使用位段

    1.3、模拟输入

    模拟输入上拉电阻和下拉电阻是没有用的

    高阻态下模拟输入

    从上面框图得知

    1. 弱上拉和下拉电阻禁止

    2. 施密特触发器停用,施密特触发器输出值强制为0

    3. 输出缓存被禁止

    4. 读输入数据期存器, 读到的值为0

    注意:IO配置成模拟输入时,不能容忍5V电压

    1.4、复用输出

    复用输出框图

    从上图框图中可以得到5条信息

    1. 输出缓存被来自外设的信号驱动(发送数据器使能和数据),也即是位设置/清除寄存器和输出数据寄存器在这里是无用的

    2. 由于P-MOS和N-MOS使能,仍然可以配置成推挽输出和开漏输出

    3. 上拉电阻和下拉电阻使能,可以进行配置

    4. TTL施密特触发器使能

    5. 可以通过读输入数据寄存器, 可以得到 I/O 的状态

     

    02、管脚复用和重映射

    管脚复用和重映射(其实是一回事),STMF10X系列叫重映射,STMF20X系列叫管脚复用,也就是复用功能

    2.1、STMF10X系列

    STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特别之处就是:很多复用内置的外设的I/O引脚可以通过重映射功能,从不同的I/O管脚引出,即复用功能的引脚是可通过程序改变的。

    三个红框交汇处.STM32F103VCT6这个CPU的USART1接的是PB6/PB7但是上电初始化后默认功能并非是USART1.所以想要用串口功能.必须用端口重映射。

    STM32的单片机每个功能模块有自己的时钟系统,所以要想要调用STM32单片机的功能模块时必须先配置对应时钟,然后才能去操作相应的功能模块.端口重映射也一样.如图示:

    重映射步骤为:

    1.打开重映射时钟和USART重映射后的I/O口引脚时钟, 

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_AFIO,ENABLE);

    2.I/O口重映射开启.

    GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);

    3.配制重映射引脚, 这里只需配置重映射后的I/O,原来的不需要去配置.​​​​​​​

    GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6;
    GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
    
    GPIO_InitStructure.GPIO_Pin =GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOB,&GPIO_InitStructure);

    2.1STMF20X系列

    STMF20X系列(包括之后的40系列)是没有重映射的说法,只有统一的称为复用功能。

    从上图看出F10X系列会有专门的普通IO寄存器,会有复用寄存器,使用库函数如下:

    void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalStateNewState)

     

    从上图F20X系列使用了复用功能寄存器,然不是像F10系列存在专门的复用寄存器,F20X系列GPIO复用的功能更广。

    备注:要先配置GPIO为复用功能,再调用复用的库函数

     

    03、相关名词解释

    GPIO模式名字解释

    GPIO_Mode

    全拼

    描述

    GPIO_Mode_AIN

    Analogue  In

    模拟输入

    GPIO_Mode_IN_FLOATING

    Float  In

    浮空输入

    GPIO_Mode_IPD

    In Pull Down

    下拉输入

    GPIO_Mode_IPU

    In Pull Up

    上拉输入

    GPIO_Mode_Out_OD

    Out Drain

    开漏输出

    GPIO_Mode_Out_PP

    Push Pull

    推挽输出

    GPIO_Mode_AF_OD

    Alternate Function

    复用开漏输出

    GPIO_Mode_AF_PP

    Alternate Function

    复用推挽输出

    F20系列:GPIO共有四种功能​​​​​​​

    typedef enum
    { 
      GPIO_Mode_IN   = 0x00, /*!< GPIO Input Mode */
      GPIO_Mode_OUT  = 0x01, /*!< GPIO Output Mode */
      GPIO_Mode_AF   = 0x02, /*!< GPIO Alternate function Mode */
      GPIO_Mode_AN   = 0x03  /*!< GPIO Analog Mode */
    }GPIOMode_TypeDef;
    

    GPIO状态

    推挽输出

    可以输出强高低电平,连接数字器件。

    开漏输出

    只可以输出强低电平,高电平需要外部电阻拉高,输出端相当于三极管的集电极,要得到高电平,需要上拉电阻,适合做电流型的驱动,其吸收电流negligence相对强(一般20ma以内)

    高阻态

    高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定的。如果设置为浮空输入,也就是既没有上拉电阻,没有下拉电阻。可以认为是高阻态。

     

    点击查看本文所在的专辑,STM32F207教程

     

    关注公众号,第一时间收到文章更新。评论区不能及时看到,需要交流可以到公众号沟通

    展开全文
  • Linux命令速查手册,超详细Linux命令教程

    万次阅读 多人点赞 2016-07-11 22:45:54
    一、常用命令速查 ls cd pwd cat more less tail head cp scp mv mkdir rmdir touch rm ps kill top free ...wc
    展开全文
  • C语言

    千次阅读 多人点赞 2018-12-30 21:52:00
    C语言详解 - 基本数据类型和标识符C语言详解 - 枚举C语言详解 - 输入输出C语言详解 - 表达式和语句C语言详解 - 控制语句C语言详解 - 数组C语言详解 - 指针与数组C语言详解 - 结构体C语言详解 - 文件C语言...
  • 蓝桥杯历年真题题目及题解目录汇总

    万次阅读 多人点赞 2019-05-19 23:56:20
    先挖个大坑= = 省赛 B组 2013年第四届蓝桥杯省赛试题及详解(Java本科B组) 2014年第五届蓝桥杯省赛试题及详解(Java本科B组) 2015年第六届蓝桥杯省赛... 2018年第九届蓝桥杯省赛试题及详解(Java本科B...
  • 孙鑫《VC++深入详解》完整版PDF 下载

    万次阅读 多人点赞 2016-08-23 10:09:06
    非常不错的书,结合孙鑫视频看,效果很好。 下载地址: http://www.kuaipan.cn/file/id_63659674548831553.html
  • 《TCP/IP详解 卷1:协议》PDF分享

    万次阅读 多人点赞 2020-04-07 13:36:26
    《TCP/IP详解》一共三卷,其中卷二、卷三更多偏重于编程细节,而卷一更多偏重于基础原理,基本上都是通过实验先看现象,然后再来引出其背后的原理,所以如果没有什么基础,还是踏踏实实从头看,这对于网络工程师、...
  • Intel CPU型号官网详解

    万次阅读 2018-07-12 21:05:04
    CPU型号官网详解
  • 《TCP/IP详解 卷1:协议》在线阅读

    万次阅读 多人点赞 2018-08-03 08:45:17
    比较经典的一本书籍,中文版本。手机上如果阅读不了,将浏览器UA 更改为电脑即可 http://www.52im.net/topic-tcpipvol1.html?mobile=no
  • 资料分享:《TCP IP详解 三卷全》高清PDF,有的带书签。喜欢的朋友可以下载看看。 下载地址:http://vdisk.weibo.com/s/8ySI9
  • 大学物理简明教程第三版修订版课后习题详解

    千次阅读 多人点赞 2019-03-23 23:03:28
  • (0)【机器学习】机器学习综述与“Hello World”实战http://blog.csdn.net/sileixinhua/article/details/73611056(1)【机器学习...K-Means++ 聚类算法详解与实战(4)【机器学习】逻辑斯蒂回归(Logistic regression
  • Android基础&进阶

    万次阅读 多人点赞 2013-08-01 22:57:23
    基础总结篇之一:Activity生命周期 基础总结篇之二:Activity的四种launchMode 基础总结篇之三:Activity的task相关
  • SpringBoot DataSource配置详解

    千次阅读 2017-08-22 18:19:41
    SpringBoot DataSource配置详解 SpringBoot--datasource配置信息详解:点击打开链接
  • 博客iOS部分目录-方便快速查找

    千次阅读 2018-01-12 16:30:26
    前言 在这里,你或许能找到你想要的关于IOS问题的答案。
  • git操作教程图文详解

    万次阅读 2018-03-26 14:33:33
    博客迁移:http://www.cnblogs.com/paokaiyiqie/p/7838473.html 
  • 大家好,我从淘宝店铺买到了 Adams入门详解与实例(第2版) pdf电子书,和大家分享,下面的百度云盘中 http://pan.baidu.com/s/1Cxmjk
  • 思科路由器配置命令详解及实例

    万次阅读 2015-02-11 16:30:22
    思科路由器配置命令详解及实例 本文档全篇共46页,详细介绍了思科路由器的配置命令教程 详细解读 和小伙伴们一起来吐槽
1 2 3 4 5 ... 20
收藏数 1,037,284
精华内容 414,913
关键字:

详解