打印
[技术问答]

菜鸟初学M058S之数据结构

[复制链接]
5313|56
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 niuyaliang 于 2013-11-27 21:11 编辑

新的库改了许多,这就要求用户必须熟悉库里定义的数据结构了,数据结构在M051Series.h中定义,下面是库中定义的所有结构体(部分中文截图来自于MUC100的中文技术参考手册,因为两者的差距不是很大)
__FILE  
ADC_T  
CoreDebug_Type  
FMC_T  
GCR_INT_T  
GCR_T  
GPIO_DBNCECON_T  
GPIO_T  
I2C_T  
NVIC_Type  
PWM_T  
SCB_Type  
SPI_T  
SYSCLK_T  
SysTick_Type  
TIMER_T  
UART_T  
WDT_T  
WWDT_T


沙发
niuyaliang|  楼主 | 2013-11-27 20:42 | 只看该作者
GCR_T
__I uint32_t  PDID 
__IO uint32_t  RSTSRC
__IO uint32_t  IPRSTC1
__IO uint32_t  IPRSTC2
uint32_t  RESERVED0 [2]
__IO uint32_t  BODCR
__IO uint32_t  TEMPCR
uint32_t  RESERVED1
__IO uint32_t  PORCR
uint32_t  RESERVED2 [2]
__IO uint32_t  P0_MFP
__IO uint32_t  P1_MFP
__IO uint32_t  P2_MFP
__IO uint32_t  P3_MFP
__IO uint32_t  P4_MFP
__IO uint32_t  P5_MFP
__IO uint32_t  P6_MFP
__IO uint32_t  P7_MFP
uint32_t  RESERVED3 [44]
__IO uint32_t  REGWRPROT


使用特权

评论回复
板凳
niuyaliang|  楼主 | 2013-11-27 21:05 | 只看该作者

__I  uint32_t PDID; 


使用特权

评论回复
地板
niuyaliang|  楼主 | 2013-11-27 21:10 | 只看该作者
 __IO uint32_t RSTSRC

主要是识别是因为什么原因而导致系统复位的

使用特权

评论回复
5
niuyaliang|  楼主 | 2013-11-27 21:13 | 只看该作者
本帖最后由 niuyaliang 于 2013-11-27 21:14 编辑
 __IO uint32_t IPRSTC1;
外设复位控制寄存器,可以设置复位的区域

使用特权

评论回复
6
niuyaliang|  楼主 | 2013-11-27 21:18 | 只看该作者
本帖最后由 niuyaliang 于 2013-11-27 21:20 编辑
__IO uint32_t IPRSTC2;
产生异步复位信号给相应的模块控制器,从图上可以看出,包括以下模块

使用特权

评论回复
7
niuyaliang|  楼主 | 2013-11-27 21:25 | 只看该作者
uint32_t RESERVED0[2];
从英文翻译看,应该是定义一个保留的数组,不知道干什么用的?

使用特权

评论回复
8
niuyaliang|  楼主 | 2013-11-27 21:29 | 只看该作者
 __IO uint32_t BODCR;
欠压检测控制寄存器,部分位在配置FLASH位时已经初始化,他们是受保护的,写这些位时,需要被解锁

使用特权

评论回复
9
niuyaliang|  楼主 | 2013-11-27 21:31 | 只看该作者
__IO uint32_t TEMPCR;
这个是内部自带的温度传感器控制寄存器,他只有一位有效

使用特权

评论回复
10
niuyaliang|  楼主 | 2013-11-27 21:33 | 只看该作者
uint32_t RESERVED1;
貌似也是个预留位,不知道干什么的

使用特权

评论回复
11
niuyaliang|  楼主 | 2013-11-27 21:37 | 只看该作者
__IO uint32_t PORCR;
上电复位控制寄存器,MUC100中是受保护的,M058S中没说

使用特权

评论回复
12
niuyaliang|  楼主 | 2013-11-27 21:37 | 只看该作者
uint32_t RESERVED2[2];
预留位,以后这个不再单独说明

使用特权

评论回复
13
niuyaliang|  楼主 | 2013-11-27 21:40 | 只看该作者
__IO uint32_t P0_MFP;
__IO uint32_t P1_MFP;
这是IO口的管脚控制寄存器,P0-P7都是

使用特权

评论回复
14
niuyaliang|  楼主 | 2013-11-27 21:44 | 只看该作者
__IO uint32_t REGWRPROT;
这个就是系统写保护控制寄存器,以下寄存器的写都需要解锁

使用特权

评论回复
15
niuyaliang|  楼主 | 2013-11-27 21:47 | 只看该作者
01401 typedef struct
01402 {
01459     __IO uint32_t  PMD;                        
01460
01472     __IO uint32_t  OFFD;                        
01473
01522     __IO uint32_t  DOUT;                        
01523
01580     __IO uint32_t  DMASK;                       
01581
01606     __IO uint32_t  PIN;                        
01607
01688     __IO uint32_t  DBEN;                        
01689
01778     __IO uint32_t  IMD;                        
01779
01932     __IO uint32_t  IEN;                        
01933
01998     __IO uint32_t  ISRC;                        
01999 } GPIO_T;
这个是GPIO的结构体

使用特权

评论回复
16
niuyaliang|  楼主 | 2013-11-27 21:50 | 只看该作者
__IO uint32_t  PMD;
GPIO模式控制,共有四种模式

使用特权

评论回复
17
niuyaliang|  楼主 | 2013-11-27 21:52 | 只看该作者
__IO uint32_t  OFFD;
设置IO为数字功能还是模拟功能

使用特权

评论回复
18
万法归宗| | 2013-11-27 21:52 | 只看该作者
讲的不错,很有帮助

使用特权

评论回复
19
黄小俊| | 2013-11-27 21:53 | 只看该作者

使用特权

评论回复
20
万法归宗| | 2013-11-27 21:54 | 只看该作者
niuyaliang 发表于 2013-11-27 21:05

产品识别码怎么读出来呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

2427

帖子

7

粉丝