最近一直在学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;
用起来也比较方便。
以上
上一篇:STM8L的RAM与内存模型
下一篇:STM8汇编代码分析
推荐阅读
史海拾趣
如果你想进入但是还徘徊在嵌入式门口,如果你不知道怎么学,不知道学什么,那这骗文章你必看,它将解开你的迷团,对你的帮助将会非常的大。如果你已经进入嵌式这行了,那么这篇文章对你也是有很大的启发和帮助。… 查看全部问答∨ |
wince下捕获键盘消息可以用SetWindowsHookExW的hook实现,但是我在ppc 6.0下不能捕获鼠标 以下是实现: [code] HINSTANCE library; sethook sethookfunction; ...… 查看全部问答∨ |
我的工具VS2005 .NET CF 2.0 SQLCE 我现在遇到个问题,就是MC1000程序做好后正常都可以用,就是偶尔突发遇到死机问题: 现象:屏幕界面光标失踪,点什么都没反应,死机,不能调出开始菜单WARMROOT& ...… 查看全部问答∨ |
|
我新装的winxp(sp2),新装的softice 3.2。在调试程序时,经常死机(98%的概率)。也就是说鼠标,键盘没有响应了!我该怎办?… 查看全部问答∨ |
|
1》 在使用STM8S105K6这颗芯片内部eeprom的时候,为什么两次输入密码后还是不让写??(用仿真器看PUL标记没有置1) ??内部EEPROM和FLASH怎样才能正确操作??高手请赐教???2》 STM8S105K6这颗芯片只有一个AD ...… 查看全部问答∨ |
【召集】launchpad大学堂,每三天一主题——串行接口2011年11月5日为了促进大家更好的利用launchpad,我们版块从今天起,每三天召集分享一个主题。今天的主题是——【串行接口】对于每天的主题分享,斑斑当天给予奖励,发放芯币!大学堂结束的时候 ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 下载有礼|精华课件汇编:泰克半导体器件的表征及可靠性研究交流会暨吉时利测试测量年度研讨会
- 泰克测试精英养成计划——答题赢好礼
- 有奖直播:基于TI Jacinto™ 的深度学习平台介绍
- 下载白皮书 答题赢好礼|TE《智能监控应用连接解决方案指南》
- 答题赢好礼|机器故障防患未然 大机器健康状态监测为您助力
- 【问题征集】大学生美国TI行,你问我送礼!
- MPS EMI 知识充电节盛大开启!赚积分赢好礼!
- 下载MPS汽车电机控制技术干货,赢【Keep体脂秤、自动洗手机套装、小米保温杯】,开启汽车技术进阶之旅!
- 学最新DLP课程,跟帖抢楼赢好礼!
- 下载白皮书赢好礼:Multi-Die 系统的早期架构性能和功耗分析