历史上的今天

今天是:2024年09月08日(星期日)

2018年09月08日 | 学习STM8 关于数据类型的定义心得

发布者:数字之舞 来源: eefocus关键字:STM8  数据类型 手机看文章 扫描二维码
随时随地手机看文章

最近一直在学STM8  代码里面一直出现u8 * / u16等等 


类似


#include"stm8s.h"

 

/*芯片唯一的ID地址 96位*/

define UNIQUE_ID_START_ADDR  0x48CD

 

u8 i;

s16 temp;

s8 t;

u8 * pUniqueId;

 

 

 

int main( void )

{

  return 0;

}

一直不理解什么是u8 今天再网上好好的找找发现u8 是unsigned int 8的意思。如果是标准的C语言表达方式应该是

unsigned int 8


但是STM就变成了u8 一开始很郁闷不知道是什么意思。但是现在这样一想


volatile signed 32也就变成了


vs32 


说到底,ST搞这么多花样嘛,也就是开发人员强行偷了个懒,结果搞得我们初学者头晕。不过怎么样变化都是基于标准C的。


可以参考


//stdint.h 这里是C语言的标准表达方式

 

   //第36行开始

typedef   signed          char int8_t;  //  标准表达方式 signed char 等同于 int8_t;

typedef   signed short     int int16_t;

typedef   signed           int int32_t;//  如果是在32位环境里,int代表4个字节32位

typedef   signed       __int64 int64_t;

 

typedef unsigned          char uint8_t;

typedef unsigned short     int uint16_t;

typedef unsigned           int uint32_t;

typedef unsigned       __int64 uint64_t;

 

typedef   signed          char int_least8_t;

typedef   signed short     int int_least16_t;

typedef   signed           int int_least32_t;

typedef   signed       __int64 int_least64_t;

 

typedef unsigned          char uint_least8_t;

typedef unsigned short     int uint_least16_t;

typedef unsigned           int uint_least32_t;

typedef unsigned       __int64 uint_least64_t;

 

typedef   signed           int int_fast8_t;

typedef   signed           int int_fast16_t;

typedef   signed           int int_fast32_t;

typedef   signed       __int64 int_fast64_t;

 

typedef unsigned           int uint_fast8_t;

typedef unsigned           int uint_fast16_t;

typedef unsigned           int uint_fast32_t;

typedef unsigned       __int64 uint_fast64_t;

 

typedef   signed           int intptr_t;

typedef unsigned           int uintptr_t;

 

typedef   signed       __int64 intmax_t;

typedef unsigned       __int64 uintmax_t;


关于STM32 为了兼容旧版本的

typedef int32_t  s32;

typedef int16_t s16;

typedef int8_t  s8;

 

typedef const int32_t sc32; 

typedef const int16_t sc16; 

typedef const int8_t sc8;  

 

typedef __IO int32_t  vs32;

typedef __IO int16_t  vs16;

typedef __IO int8_t   vs8;

 

typedef __I int32_t vsc32; 

typedef __I int16_t vsc16; 

typedef __I int8_t vsc8;  

 

typedef uint32_t  u32;

typedef uint16_t u16;

typedef uint8_t  u8;

 

typedef const uint32_t uc32; 

typedef const uint16_t uc16; 

typedef const uint8_t uc8;  

 

typedef __IO uint32_t  vu32;

typedef __IO uint16_t vu16;

typedef __IO uint8_t  vu8;

 

typedef __I uint32_t vuc32; 

typedef __I uint16_t vuc16; 

typedef __I uint8_t vuc8;  


可以作为参考理解。

以上


**修改下,更加容易理解的地方应该是在这里


/*!< Signed integer types  */

typedef   signed char     int8_t;

typedef   signed short    int16_t;

typedef   signed long     int32_t;

/*!< Unsigned integer types  */

typedef unsigned char     uint8_t;

typedef unsigned short    uint16_t;

typedef unsigned long     uint32_t;



这里就能看出,int8_t 应该是 singed char 也就是说声明新的类型名来代替原有的类型名,这样的好处就是定义一种新的数据类型,这种类型又可以用来声明属于该类型的变量,大多数情况typedef用来定义一种结构体,因为原有数据类型不够用了。


有个例子


自定义数据类型

经常用来将结构定义成一个数据类型~如:

typedef struct student{

char name[10];

char kemu[10];

double mark;

}student;

这样就可以直接定义数据

student stu;

stu.name = '张三';

stu.kemu = '语文';

stu.mark = 97.5;


用起来也比较方便。


以上


关键字:STM8  数据类型 引用地址:学习STM8 关于数据类型的定义心得

上一篇:STM8L的RAM与内存模型
下一篇:STM8汇编代码分析

推荐阅读

这年头,企业家越来越能说了,而且总是语不惊人死不休的派头,一方面他们真得是在扯淡,目的是吸引眼球,造成视觉效应;另一方面,企业家特别是科技企业家,思维深度和专业见识都远胜于普通人,独到的观点和深刻的见解无法让大众理解,前者的代表是台湾郭台铭,他说三年内要推出100万的机器人,结果现在进展缓慢,比富士康普工薪水的增长速度还慢;后者的...
当前5G手机产业链处于加速构建期,基于从4G到5G的网络变革,5G手机将面临高速高频的新需求,包括散热、屏蔽、高频材料、射频前端等材料及器件等行业都处于重塑阶段。这其中,专注于泛射频材料到模组的信维通信成为5G射频天线领域的有力竞争者,备受资本市场看好,自5G牌照发放以来,信维通信股价至今涨幅已经超过50%;不过,对于信维通信而言,正在量产的L...
1.44寸TFT液晶屏图片程序分为软件SPI和硬件SPI软件SPI程序:用单片机STC89C516和STC89C516和单片机STC12C5A60S2,12MHz晶振,测试通过硬件SPI程序:用单片机STC12C5A60S2,12MHz晶振,测试通过(STC89C516无硬件SPI)使用软件SPI的程序显示速度较慢,但是通用性好,使用硬件SPI的程序显示速度较快,但CLK和MOSI连线不可更改,通用性较差(连线在程序的port.h文件中)程序...
近日,京东方科技集团股份有限公司(以下简称“京东方”)发布公告称,公司拟通过下属全资子公司天津京东方创新投资有限公司(以下简称“天津京东方创投”)出资10亿元向北京燕东微电子股份有限公司(以下简称“燕东微”)进行增资,布局集成电路关键领域,推动集成电路及半导体行业国产化进程。燕东微拟投资建设特色工艺12吋集成电路生产线项目,计划股权...

史海拾趣

问答坊 | AI 解惑

想入行嵌入式的新手不得不看!!绝对影响你一生!!

如果你想进入但是还徘徊在嵌入式门口,如果你不知道怎么学,不知道学什么,那这骗文章你必看,它将解开你的迷团,对你的帮助将会非常的大。如果你已经进入嵌式这行了,那么这篇文章对你也是有很大的启发和帮助。…

查看全部问答∨

wince ppc下如何捕获鼠标事件?

wince下捕获键盘消息可以用SetWindowsHookExW的hook实现,但是我在ppc 6.0下不能捕获鼠标 以下是实现: [code]        HINSTANCE library;         sethook sethookfunction;       ...…

查看全部问答∨

MC1000开发问题

   我的工具VS2005  .NET CF 2.0   SQLCE  我现在遇到个问题,就是MC1000程序做好后正常都可以用,就是偶尔突发遇到死机问题: 现象:屏幕界面光标失踪,点什么都没反应,死机,不能调出开始菜单WARMROOT& ...…

查看全部问答∨

gprs步骤

   我做一个GPS采集数据,让GPRS来传输数据,用单片机来实现。    前几天我做好了GPS采集,并用无线传输模块实现了传输,但距离但短了,现在换GPRS来传输,就传输一些经纬数据而已。    我应该怎么来做呢?GPRS的 ...…

查看全部问答∨

winxp(sp2)下的softice 3.2老是死机!

我新装的winxp(sp2),新装的softice 3.2。在调试程序时,经常死机(98%的概率)。也就是说鼠标,键盘没有响应了!我该怎办?…

查看全部问答∨

请各位老师看看帮我转换一下eagle.brd文件

转换一下eagle.brd文件                      可以99se 可看的pcb 文件 …

查看全部问答∨

内部温度的计算?

公式 Temperature (in °C) = {(V25 - VSENSE) / Avg_Slope} + 25.Where,V25 = VSENSE value for 25° C andAvg_Slope = Average  ...…

查看全部问答∨

stm8s写eeprom请教

1》  在使用STM8S105K6这颗芯片内部eeprom的时候,为什么两次输入密码后还是不让写??(用仿真器看PUL标记没有置1) ??内部EEPROM和FLASH怎样才能正确操作??高手请赐教???2》  STM8S105K6这颗芯片只有一个AD ...…

查看全部问答∨

launchpad大学堂,每三天一主题——串行接口

【召集】launchpad大学堂,每三天一主题——串行接口2011年11月5日为了促进大家更好的利用launchpad,我们版块从今天起,每三天召集分享一个主题。今天的主题是——【串行接口】对于每天的主题分享,斑斑当天给予奖励,发放芯币!大学堂结束的时候 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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