📄 stm32f103-s.h
字号:
// *******************************************************************************************************
// 11 窗口看门狗(WWDG)
// *******************************************************************************************************
// *******************************************************************************************************
// 12 高级控制定时器(TIM1)
// *******************************************************************************************************
// *******************************************************************************************************
// 13 通用定时器(TIMx) x=2 3 4
// *******************************************************************************************************
struct TIM_CR1_BITS {
Uint16 CEN :1; // 0 允许计数器 1:开启计数器
Uint16 UDIS :1; // 1 禁止更新 软件通过该位允许/禁止UEV事件的产生
Uint16 URS :1; // 2 更新请求源 软件通过该位选择UEV事件的源1:如果允许产生更新中断或DMA请求,则只有计数器溢出/下溢产生一个更新中断或DMA请求
Uint16 OPM :1; // 3 单脉冲模式 0:在发生更新事件时,计数器不停止 1:在发生下一次更新事件(清除CEN位)时,计数器停止。
Uint16 DIR :1; // 4 方向 0:计数器向上计数 1:计数器向下计数
Uint16 CMS :2; // 6:5 选择中央对齐模式
Uint16 ARPE :1; // 7 自动重装载预装载允许位 0:TIM1_ARR寄存器没有缓冲
Uint16 CKD :2; // 9:8 时钟分频因子 时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比例。
Uint16 Reserved0 :6; // 15:10
};
union TIM_CR1_REG {
Uint16 all;
struct TIM_CR1_BITS bit;
};
//------------------------------------------------------------------------
// 控制寄存器2(TIMx_CR2)
//------------------------------------------------------------------------
struct TIM_CR2_BITS {
Uint16 Reserved1 :3; // 2:0
Uint16 CCDS :1; // 3 CCDS:捕获/比较的DMA选择 0:当发生CCx事件时,送出CCx的DMA请求。
Uint16 MMS :3; // 6:4 MMS[1:0]:主模式选择 这两位用于选择在主模式下送到从定时器的同步信息(TRGO)
Uint16 TI1S :1; // 7 TI1选择 0:TIMx_CH1管脚连到TI1输入。 1:TIMx_CH1、TIMx_CH2和TIMx_CH3管脚经异或后连到TI1输入。
Uint16 Reserved0 :8; // 15:7
};
union TIM_CR2_REG {
Uint16 all;
struct TIM_CR2_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.3 从模式控制寄存器(TIMx_SMCR)
//------------------------------------------------------------------------
struct TIM_SMCR_BITS {
Uint16 SMS :3; // 2:0 SMS:从模式选择 000:关闭从模式 – 如果CEN=1,则预分频器直接由内部时钟驱动。
Uint16 Reserved1 :1; // 3
Uint16 TS :3; // 6:4 S[2:0]:触发选择
Uint16 MSM :1; // 7 MSM:主/从模式
Uint16 ETF :4; // 11:8 ETF[3:0]:外部触发滤波
Uint16 ETPS :2; // 13:12 ETPS[1:0]:外部触发预分频
Uint16 CEC :1; // 14 ECE:外部时钟允许位
Uint16 ETP :1; // 15 ETP:外部触发极性 0:ETR不反相,高电平或上升沿有效 1:ETR被反相,低电平或下降沿有效
};
union TIM_SMCR_REG {
Uint16 all;
struct TIM_SMCR_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.4 DMA/中断使能寄存器(TIMx_DIER)
//------------------------------------------------------------------------
struct TIM_DIER_BITS {
Uint16 UIE :1; // 0 UIE:允许更新中断 1:允许更新中断
Uint16 CC1IE :1; // 1 CC1IE:允许捕获/比较1中断
Uint16 CC2IE :1; // 2 CC2IE:允许捕获/比较2中断
Uint16 CC3IE :1; // 3 CC3IE:允许捕获/比较3中断
Uint16 CC4IE :1; // 4 CC4IE:允许捕获/比较4中断
Uint16 Reserved3 :1; // 5
Uint16 TIE :1; // 6 TIE:允许触发中断
Uint16 Reserved2 :1; // 7
Uint16 UDE :1; // 8 UDE:允许更新的DMA请求
Uint16 CC1DE :1; // 9
Uint16 CC2DE :1; // 10
Uint16 CC3DE :1; // 11
Uint16 CC4DE :1; // 12 CC4DE:允许捕获/比较4的DMA请求
Uint16 Reserved1 :1; // 13
Uint16 TDE :1; // 14 TDE:允许触发DMA请求
Uint16 Reserved0 :1; // 15
};
union TIM_DIER_REG {
Uint16 all;
struct TIM_DIER_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.5 状态寄存器(TIMx_SR)
//------------------------------------------------------------------------
struct TIM_SR_BITS {
Uint16 UIF :1; // 0 UIF:更新中断标记 当产生更新事件()时该位由硬件置1。它由软件清0。;例如:上溢或下溢时,软件对CNT重新初始化
Uint16 CC1IF :1; // 1 CC1IF:捕获/比较1 中断标记由软件清0 【写0可清除该位】
Uint16 CC2IF :1; // 2 CC2IF:捕获/比较2 中断标记由软件清0 【写0可清除该位】
Uint16 CC3IF :1; // 3 CC3IF:捕获/比较3 中断标记由软件清0 【写0可清除该位】
Uint16 CC4IF :1; // 4 CC4IF:捕获/比较4 中断标记由软件清0 【写0可清除该位】
Uint16 Reserved2 :1; // 5
Uint16 TIF :1; // 6 TIF:触发器中断标记
Uint16 Reserved1 :2; // 8:7
Uint16 CC1OF :1; // 9 CC1OF:捕获/比较1 过捕获标记 【写0可清除该位】
Uint16 CC2OF :1; // 10 CC2OF:捕获/比较2 过捕获标记
Uint16 CC3OF :1; // 11 CC3OF:捕获/比较3 过捕获标记
Uint16 CC4OF :1; // 12 CC4OF:捕获/比较4 过捕获标记
Uint16 Reserved0 :3; // 15:13
};
union TIM_SR_REG {
Uint16 all;
struct TIM_SR_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.6 事件产生寄存器(TIMx_EGR)
//------------------------------------------------------------------------
struct TIM_EGR_BITS {
Uint16 UG :1; // 0 UG: 产生更新事件 该位由软件置1,由硬件自动清0。1:重初始化计数器,并产生一个更新事件。注意预分频器的计数器也被清0
Uint16 CC1G :1; // 1 CC1G:产生捕获/比较1事件 该位由软件置1,用于产生一个捕获/比较事件,由硬件自动清0。
Uint16 CC2G :1; // 2 CC2G:产生捕获/比较2事件
Uint16 CC3G :1; // 3 CC3G:产生捕获/比较3事件
Uint16 CC4G :1; // 4 CC4G:产生捕获/比较4事件
Uint16 Reserved1 :1; // 5
Uint16 TG :1; // 6 TG:产生触发事件该位由软件置1,用于产生一个触发事件,由硬件自动清0。
Uint16 Reserved0 :9; // 15:7
};
union TIM_EGR_REG {
Uint16 all;
struct TIM_EGR_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.7 捕获/比较模式寄存器1(TIMx_CCMR1)
//------------------------------------------------------------------------
struct TIM_CCMR1_OU_BITS {
Uint16 CC1S :2; // 1:0 CC1S[1:0]:捕获/比较1 选择。00:CC1通道被配置为输出;01:CC1通道被配置为输入,IC1映射在TI1上 10:CC1通道被配置为输入,IC1映射在TI2上;11:CC1通道被配置为输入,IC1映射在TRC上
Uint16 OC1FE :1; // 2 OC1FE:输出比较1 快速使能OCFE的只在通道被配置成PWM1或PWM2模式时起作用。
Uint16 OC1PE :1; // 3 OC1PE:输出比较1预装载使能1:开启TIMx_CCR1寄存器的预装载功能
Uint16 OC1M :3; // 6:4 0C1M[2:0]:输出比较1模式 000:冻结001 : 匹配时设置通道1 为有效电平
Uint16 COC1CE :1; // 7 OC1CE:输出比较1清0使能
Uint16 CC2S :2; // 9:8 CC2S[1:0]:捕获/比较2选择。这2位定义通道的方向(输入/输出),及输入脚的选择:
Uint16 CC2FE :1; // 10 OC2FE:输出比较2快速使能OCFE的只在通道被配置成PWM1或PWM2模式时起作用。
Uint16 OC2PE :1; // 11 OC2PE:输出比较2预装载使能
Uint16 OC2M :3; // 14:12
Uint16 OC2CE :1; // 15 OC2CE:输出比较2清0使能
};
struct TIM_CCMR1_IN_BITS {
Uint16 CC1S :2; // 1:0 CC1S[1:0]:捕获/比较1选择。
Uint16 IC1PSC :2; // 3:2 IC1PSC[1:0]:输入/捕获1预分频器00:无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获;
Uint16 IC1F :4; // 7:4 IC1F[3:0]:输入捕获1滤波器0000:无滤波器,以fDTS采样0001:采样频率fSAMPLING=fCK_INT,N=2
Uint16 CC2S :2; // 9:8 CC2S[1:0]:捕获/比较2选择。00:CC2通道被配置为输出;01:CC2通道被配置为输入,IC2映射在TI2上;
Uint16 IC2PSC :2; // 11:10 IC2PSC[1:0]:输入/捕获2预分频器
Uint16 IC2F :4; // 15:12 IC2F:输入捕获2滤波器
};
union TIM_CCMR1_REG {
Uint16 all;
struct TIM_CCMR1_OU_BITS ou_bit;
struct TIM_CCMR1_IN_BITS in_bit;
};
//------------------------------------------------------------------------
// 13.5.8 捕获/比较模式寄存器2(TIMx_CCMR2)
//------------------------------------------------------------------------
struct TIM_CCMR2_OU_BITS {
Uint16 CC3S :2; // 1:0 CC3S[1:0]:捕获/比较3选择
Uint16 OC3FE :1; // 2 OC3FE:输出比较3快速使能
Uint16 OC3PE :1; // 3 OC3PE:输出比较3预装载使能
Uint16 OC3M :3; // 6:4 0C3M[2:0]:输出比较3模式
Uint16 OC3CE :1; // 7 OC3CE:输出比较3清0使能
Uint16 CC4S :2; // 9:8 CC4S[1:0]:捕获/比较4选择。00:CC4通道被配置为输出;
Uint16 OC4FE :1; // 10 OC4FE:输出比较4快速使能
Uint16 OC4PE :1; // 11 OC4PE:输出比较4预装载使能
Uint16 OC4M :3; // 14:12 0C4M[2:0]:输出比较4模式
Uint16 OC4CE :1; // 15 OC4CE:输出比较4清0使能
};
struct TIM_CCMR2_IN_BITS {
Uint16 CC3S :2; // 1:0 CC3S[1:0]:捕获/比较3选择。
Uint16 IC3PSC :2; // 3:2 IC3PSC[1:0]:输入/捕获3预分频器
Uint16 IC3F :4; // 7:4 IC3F[3:0]:输入捕获3滤波器
Uint16 CC4S :2; // 9:8 CC2S[1:0]:捕获/比较4选择
Uint16 IC4PSC :2; // 11:10 IC4PSC[1:0]:输入/捕获4预分频器
Uint16 IC4F :4; // 15:12 IC4F:输入捕获4滤波器
};
union TIM_CCMR2_REG {
Uint16 all;
struct TIM_CCMR2_OU_BITS ou_bit;
struct TIM_CCMR2_IN_BITS in_bit;
};
//------------------------------------------------------------------------
// 13.5.9 捕获/比较使能寄存器(TIMx_CCER)
//------------------------------------------------------------------------
struct TIM_CCER_BITS {
Uint16 CC1E :1; // 0 CC1E:输入/捕获1输出使能 0: 关闭- OC1禁止输出。1: 开启- OC1信号输出到对应的输出引脚。
Uint16 CC1P :1; // 1 CCIP 输入/捕获1输出极性 0:OC1高电平有效1:OC1低电平有效
Uint16 Reserved3 :2; // 3:2
Uint16 CC2E :1; // 4 CC2E:输入/捕获2输出使能。参考CC1E的描述
Uint16 CC2P :1; // 5 CC2P:输入/捕获2输出极性。参考CC1P的描述。
Uint16 Reserved2 :2; // 7:6
Uint16 CC3E :1; // 8 CC3E:输入/捕获3输出使能。参考CC1E 的描述
Uint16 CC3P :1; // 9 CC3P:输入/捕获3输出极性。参考CC1P的描述。
Uint16 Reserved1 :2; // 11:10
Uint16 CC4E :1; // 12 CC4E:输入/捕获4输出使能。参考CC1E 的描述。
Uint16 CC4P :1; // 13 CC4P:输入/捕获4输出极性。参考CC1P的描述。
Uint16 Reserved0 :2; // 15:14
};
union TIM_CCER_REG {
Uint16 all;
struct TIM_CCER_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.10 计数器(TIMx_CNT)
//------------------------------------------------------------------------
struct TIM_CNT_BITS {
Uint16 CNT :16; // 15:0 计数器的值
};
union TIM_CNT_REG {
Uint16 all;
struct TIM_CNT_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.11 预分频器(TIMx_PSC)
//------------------------------------------------------------------------
struct TIM_PSC_BITS {
Uint16 PSC :16; // 15:0 预分频器的值
};
union TIM_PSC_REG {
Uint16 all;
struct TIM_PSC_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.12 自动重装载寄存器(TIMx_ARR)
//------------------------------------------------------------------------
struct TIM_ARR_BITS {
Uint16 ARR :16; // 15:0 自动重装载的值
};
union TIM_ARR_REG {
Uint16 all;
struct TIM_ARR_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.13 捕获/比较寄存器1-4(TIM1_CCR1-4)
//------------------------------------------------------------------------
struct TIM_CCR_BITS {
Uint16 CCR :16; // 15:0 捕获/比较1-4的值
};
union TIM_CCR_REG {
Uint16 all;
struct TIM_CCR_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.17 DMA控制寄存器(TIMx_DCR)
//------------------------------------------------------------------------
struct TIM_DCR_BITS {
Uint16 DBA :5; // 4:0 DMA连续传送长度,这些位定义了DMA在连续模式下的传送长度0=1字节..
Uint16 Reserved1 :3; // 7:5
Uint16 DBL :5; // 12:8 DMA基地址,这些位定义了DMA在连续模式下的基地址
Uint16 Reserved0 :3; // 15:13
};
union TIM_DCR_REG {
Uint16 all;
struct TIM_DCR_BITS bit;
};
//------------------------------------------------------------------------
// 13.5.18 连续模式的DMA地址(TIMx_DMAR)
//------------------------------------------------------------------------
struct TIM_DMAR_BITS {
Uint16 DMAB :16; // 15:0 DMA连续传送寄存器
};
union TIM_DMAR_REG {
Uint16 all;
struct TIM_DMAR_BITS bit;
};
struct TIM_REGS {
union TIM_CR1_REG cr1 ; //
u16 Reserved0 ;
union TIM_CR2_REG cr2; //
u16 Reserved1 ;
union TIM_SMCR_REG smcr; //
u16 Reserved2 ;
union TIM_DIER_REG dier; //
u16 Reserved3 ;
union TIM_SR_REG sr ; //
u16 Reserved4 ;
union TIM_EGR_REG egr; //
u16 Reserved5 ;
union TIM_CCMR1_REG ccmr1; //
u16 Reserved6 ;
union TIM_CCMR2_REG ccmr2; //
u16 Reserved7 ;
union TIM_CCER_REG ccer; //
u16 Reserved8 ;
union TIM_CNT_REG cnt ; //
u16 Reserved9 ;
union TIM_PSC_REG psc ; //
u16 Reserved10 ;
union TIM_ARR_REG arr ; //
u16 Reserved11[3] ;
union TIM_CCR_REG ccr1; //
u16 Reserved12 ;
union TIM_CCR_REG ccr2; //
u16 Reserved13 ;
union TIM_CCR_REG ccr3; //
u16 Reserved14 ;
union TIM_CCR_REG ccr4; //
u16 Reserved15[3] ;
union TIM_DCR_REG dcr ; //
u16 Reserved16 ;
union TIM_DMAR_REG dmar; //
u16 Reserved17 ;
};
// *******************************************************************************************************
// 14 控制器局域网(bxCAN)
// *******************************************************************************************************
// *******************************************************************************************************
// 15 I2C接口
// *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -