OpenEdv-开源电子网

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

typedef struct 里的uint8_t数据类型 怎么赋值给char数据类型?(获取系统时间)

[复制链接]

15

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2012-11-21
在线时间
9 小时
发表于 2015-7-17 15:53:24 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]想获取系统时间 并赋值给变量char *b,但数据结构不同[/mw_shl_code] [mw_shl_code=c,true]typedef struct { uint8_t RTC_Hours; /*!< Specifies the RTC Time Hour. This parameter must be set to a value in the 0-12 range if the RTC_HourFormat_12 is selected or 0-23 range if the RTC_HourFormat_24 is selected. */ uint8_t RTC_Minutes; /*!< Specifies the RTC Time Minutes. This parameter must be set to a value in the 0-59 range. */ uint8_t RTC_Seconds; /*!< Specifies the RTC Time Seconds. This parameter must be set to a value in the 0-59 range. */ uint8_t RTC_H12; /*!< Specifies the RTC AM/PM Time. This parameter can be a value of @ref RTC_AM_PM_Definitions */ }RTC_TimeTypeDef; [/mw_shl_code]

[mw_shl_code=c,true]char *b="166";//txt文件名[/mw_shl_code]

想把RTC_Minutes赋值给*b;

[mw_shl_code=c,true]*b=&RTC_TimeStruct.RTC_Minutes;[/mw_shl_code] [mw_shl_code=c,true]但这样不行[/mw_shl_code]


附:RTC代码如下
[mw_shl_code=c,true]RTC_GetTime(RTC_Format_BIN,&RTC_TimeStruct); sprintf((char*)tbuf,"Time:%02d:%02d:%02d",RTC_TimeStruct.RTC_Hours,RTC_TimeStruct.RTC_Minutes,RTC_TimeStruct.RTC_Seconds); LCD_ShowString(30,140,210,16,16,tbuf);[/mw_shl_code]

最佳答案

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

很明显不行的啦。。。你这是c语言没有学好指针啊。。。指针的赋值 请参考:http://blog.csdn.net/mhjcumt/article/details/7351032
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2015-7-17 15:53:25 | 显示全部楼层
很明显不行的啦。。。你这是c语言没有学好指针啊。。。指针的赋值
请参考:http://blog.csdn.net/mhjcumt/article/details/7351032
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

15

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2012-11-21
在线时间
9 小时
 楼主| 发表于 2015-7-17 15:53:25 | 显示全部楼层
回复【2楼】Admin:
---------------------------------
谢谢,以解决
在C语言中没有一种内建(built-in)的方法去表示指针常量,所以当我们使用它的时候通常先写成整型常量的形式,然后再通过强制类型转换把它转换成相应的类型,如:int * , double * , char *等。 所以后面所示的做法是不行的: int *p = 0x12345678 ; 正确的方式应为:int *p = (int *) 0x12345678
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 21:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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