OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3832|回复: 5

stm32中u16和u8是什么意思

[复制链接]

10

主题

17

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2019-12-2
在线时间
10 小时
发表于 2022-3-21 11:33:36 | 显示全部楼层 |阅读模式
1金钱
近期学习过程中发现stm32中的函数有u8类型和u16类型,这个和uint16_t和uint8_t有什么区别吗?
比如hal库有这么一个函数 uint32_t HAL_TIM_ReadCapturedValue(TIM_HandleTypeDef *htim, uint32_t Channel)
我们在调用它时封装一个这样的函数
u16 TPAD_Get_Val(void)
{
    TPAD_Reset();
    while(__HAL_TIM_GET_FLAG(&TIM2_Handler,TIM_FLAG_CC1)==RESET) //等待捕获上升沿
    {
        if(__HAL_TIM_GET_COUNTER(&TIM2_Handler)>TPAD_ARR_MAX_VAL-500) return __HAL_TIM_GET_COUNTER(&TIM2_Handler);//超时了,直接返回CNT的值
    };
    return HAL_TIM_ReadCapturedValue(&TIM2_Handler,TIM_CHANNEL_1);
}

这两个是一样的吗

最佳答案

查看完整内容[请看2#楼]

typedef signed char int8_t; typedef signed short int int16_t; typedef signed int int32_t; typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

134

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1389
金钱
1389
注册时间
2019-5-29
在线时间
163 小时
发表于 2022-3-21 11:33:37 | 显示全部楼层
typedef    signed  char    int8_t;
typedef    signed short int  int16_t;
typedef    signed           int  int32_t;
typedef unsigned           char  uint8_t;
typedef unsigned  short   int  uint16_t;
typedef unsigned           int  uint32_t;
typedef unsigned  long   long  uint64_t;
偷偷摸鱼
回复

使用道具 举报

2

主题

582

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2690
金钱
2690
注册时间
2014-5-23
在线时间
188 小时
发表于 2022-3-21 15:27:03 | 显示全部楼层
没有区别,缩写而已
回复

使用道具 举报

10

主题

17

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2019-12-2
在线时间
10 小时
 楼主| 发表于 2022-3-21 17:14:41 | 显示全部楼层
awsawzj 发表于 2022-3-21 15:27
没有区别,缩写而已

这样不会溢出吗
回复

使用道具 举报

11

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1128
金钱
1128
注册时间
2021-6-17
在线时间
206 小时
发表于 2022-3-21 18:17:39 | 显示全部楼层

在stm32fxx.h中重定义了
函数原型
typedef uint32_t  u32;
typedef uint16_t u16;
typedef uint8_t  u8;
回复

使用道具 举报

49

主题

148

帖子

0

精华

高级会员

Rank: 4

积分
683
金钱
683
注册时间
2017-11-23
在线时间
133 小时
发表于 2022-3-29 15:53:58 | 显示全部楼层
我原来对此也不明白,后来看了下才明白了,这其实就是类型代替,先是用uint8_t代替了unsigned     char
如下,
typedef    signed  char    int8_t;
typedef    signed short int  int16_t;
typedef    signed           int  int32_t;
typedef unsigned           char  uint8_t;
typedef unsigned  short   int  uint16_t;
typedef unsigned           int  uint32_t;
typedef unsigned  long   long  uint64_t;
再在stm32fxx.h中用u8又代替了uint8_t;
函数原型
typedef uint32_t  u32;
typedef uint16_t u16;
typedef uint8_t  u8;

所以最终程序里直接用u8就可以了,
我还有个疑问,为什么不一步直接用u8代替unsigned     char不就完了,咋还多出一步代替呢,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 00:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表