赛元MCU应用注意事项

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "赛元MCU应用注意事项"

Transcription

1 目录 目录... 1 第一部分 : 固件库概述... 2 一 前言... 2 二 固件库架构规则... 2 三 固件库函数调用方法... 4 第二部分 : 固件库函数说明... 6 一 GPIO 固件库函数... 6 二 EXTI 固件库函数... 8 三 PWM 固件库函数... 9 四 ADC 固件库函数 五 TIMER0 固件库函数 六 TIMER1 固件库函数 七 TIMER2 固件库函数 八 UART0 固件库函数 九 SSI 固件库函数 十 IAP 固件库函数 十一 WDT 固件库函数 十二 BTM 固件库函数 十三 PWR 固件库函数 十四 CHKSUM 固件库函数 十五 OPTION 固件库函数 规格更改记录 Page 1 of 38 V0.2

2 第一部分 : 固件库概述 一 前言 赛元 92 系列 MCU 的固件库, 提供了一套 92 系列通用的 API 接口, 以及 API 接口的应用实例, 从而实现赛元 92 系列 MCU 的程序标准化 固件库中, 每个外设驱动都由一组函数组成, 这组函数覆盖了该外设所有功能 每个器件的开发都由一个通用 API 驱动,API 对该驱动程序的结构, 函数和参数名称都进行了标准化 赛元 92 系列 MCU 固件库的使用, 使用户需深入掌握外设配置细节, 也可轻松应用每个外设, 大大减少用户程序编写时间, 降低开发成本 同时, 由于 92 系列 MCU 的 API 一致, 只需替换相关库文件, 需修改程序细节, 便能实现程序项目在不同 MCU 之间的快速替换 二 固件库架构规则 1 缩写含义 ADC BTM CHKSUM 模数转换器 低频时钟定时器 校验和 DDIC 显示驱动集成电路 (LED/LCD 驱动 ) EXTI GPIO 外部中断事件控制器 通用输入输出 IAP 在应用编程 (EEPROM/FLASH 编程 ) MDU PWR PWM 乘除法器单元 电源 / 功耗控制 脉宽调制 SSI 三选一串行接口 (SPI/TWI/UART 三选一 ) TIM TOUCH UART WDT 定时器 触控电路 通用异步收发器 看门狗 Option Customer Option 区域 ( 用户烧写设置 ) 2 命名规则 固件库函数遵从以下命名规则 : PPP 表示任一外设缩写, 例如 :ADC 系统 源文件和头文件命名都以 sc92fxxxx_ 作为开头, 例如 :sc92f8003_adc.c,sc92f8003_conf.h 常量仅被应用于一个文件的, 定义于该文件中 ; 被应用于多个文件的, 在对应头文件中定义 所有常量都由英文字母大写书写 外设函数的命名以该外设的缩写加下划线为开头 每个单词的第一个字母都由英文字母大写书写, 例如 : UART0_SendData8 在中, 只允许存在一个下划线, 用以分隔外设缩写和的其他部分 名为 PPP_Init 的函数, 功能为初始化外设 PPP, 例如 :TIM0_Init 名为 PPP_DeInit 的函数, 功能为复位外设 PPP 的所有寄存器至缺省值, 例如 TIM1_DeInit 名为 PPP_Cmd 的函数, 功能为使能外设 PPP, 例如 :PWM_Cmd 名为 PPP_ITConfig 的函数, 功能为使能或失能来自外设 PPP 的中断源, 并设置中断优先级, 例如 TIM2_ITConfig 名为 PPP_GetFlagStatus 的函数, 功能为检查外设 PPP 某标志位被设置与否, 例如 :SSI_GetFlagStatus Page 2 of 38 V0.2

3 名为 PPP_ClearFlag 的函数, 功能为清除外设 PPP 的标志位, 例如 EXTI1_ClearFlag 3 编码规则 (1) 变量类型 typedef signed char int8_t; typedef signed short int16_t; typedef signed long int32_t; typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; typedef int32_t s32; typedef int16_t s16; typedef int8_t s8; typedef uint32_t u32; typedef uint16_t u16; typedef uint8_t u8; #define I volatile const #define O volatile #define IO volatile (2) 布尔型布尔型被定义如下 : typedef enum {FALSE = 0, TRUE =!FALSE} bool; (3) 状态类型标志位状态 中断状态 位状态被定义如下 : typedef enum {RESET = 0, SET =!RESET} FlagStatus, ITStatus, BitStatus; 功能状态被定义如下 : typedef enum {DISABLE = 0, ENABLE =!DISABLE} FunctionalState; 错误状态被定义如下 : typedef enum {ERROR = 0, SUCCESS =!ERROR} ErrorStatus; 优先级状态被定义如下 : typedef enum {LOW = 0, HIGH =!LOW} PriorityStatus; 4 固件库函数文件结构 ( 以 SC92F8003 芯片为例 ) sc92f8003_yyy.c sc92f8003 _yyy.h sc92f8003.h SC92F8003_C.H sc92f8003_it.c/h 外设的驱动源文件, 包含了该外设的通用 API 8003 代表该系列 IC,yyy 代表外设缩写 该文件包含头文件 sc92f8003_yyy.h 外设的驱动头文件, 包含 API 相关定义 该文件包含头文件 sc92f8003.h 固件库的通用头文件, 包含整个固件库通用的类型说明及定义等 该文件包含头文件 SC92F8003_C.H 赛元提供的 IC 标准头文件, 包含了 IC 的寄存器定义等中断服务函数源 / 头文件, 包含了 IC 所以中断服务函数, 中断处理在这里执行 Page 3 of 38 V0.2

4 三 固件库函数调用方法 固件库函数调用方法参考 SC92F8003_LIB_EXAMPLE 中的应用示例进行说明 1 在工程相关的文件夹添加固件库 SC92F8003_Lib 2 在工程内添加固件库 SC92F8003_Lib 中头文件的路径, 路径指向 inc 文件夹 Page 4 of 38 V0.2

5 3 在工程内调用 SC92F8003_Lib 中所需的源文件 4 调用固件库函数的文件内包含相关的头文件 至此, 完成对固件库函数的调用 Page 5 of 38 V0.2

6 第二部分 : 固件库函数说明 一 GPIO 固件库函数 SC92F8003 提供了最多 18 个可控制的双向 GPIO 端口, 输入输出控制寄存器用来控制各端口的输入输出状态 此 18 个 IO 口同其他功能复用 1 GPIO 固件库函数列表 GPIO_DeInit GPIO_Init GPIO_Write GPIO_WriteHigh GPIO_WriteLow GPIO_ReadPort GPIO_ReadPin GPIO 相关寄存器复位至缺省值 GPIO 模式配置初始化 GPIO 口 Px 赋值 GPIO 口管脚 Pxy 置位 GPIO 口管脚 Pxy 复位读 GPIO 口 Px 的值读 GPIO 口 Pxy 的值 2 GPIO 固件库函数详解 (1) 函数 GPIO_DeInit 功能输入参数 GPIO_DeInit void GPIO_DeInit(void) GPIO 相关寄存器复位至缺省值 (2) 函数 GPIO_Init GPIO_Init void GPIO_Init(GPIO_TypeDef GPIOx, uint8_t PortPins, GPIO_Mode_TypeDef GPIO_Mode) 功能 GPIO 口模式配置初始化 输入参数 1 GPIOx 选择操作的 GPIO 口 输入参数 2 PortPins 选择 GPIO 管脚 Pxy 输入参数 3 GPIO_Mode 选择 GPIO 口模式 GPIOx 可选值 GPIOx GPIO0 GPIO1 GPIO2 GPIO5 PortPins 可选值 PortPins GPIO_PIN_0 GPIO_PIN_1 GPIO_PIN_2 GPIO_PIN_3 GPIO_PIN_4 选择 P0 口选择 P1 口选择 P2 口选择 P5 口 IO 口的 PIN0 脚 IO 口的 PIN1 脚 IO 口的 PIN2 脚 IO 口的 PIN3 脚 IO 口的 PIN4 脚 Page 6 of 38 V0.2

7 GPIO_PIN_5 GPIO_PIN_6 GPIO_PIN_7 GPIO_PIN_LNIB GPIO_PIN_HNIB GPIO_PIN_ALL GPIO_Mode 可选值 GPIO_Mode GPIO_MODE_IN_HI GPIO_MODE_IN_PU GPIO_MODE_OUT_PP IO 口的 PIN5 脚 IO 口的 PIN6 脚 IO 口的 PIN7 脚 IO 口的 PIN0~PIN3 脚 IO 口的 PIN4~PIN7 脚 IO 口的全部 PIN 脚高阻输入模式带上拉的输入模式强推挽输出模式 (3) 函数 GPIO_Write GPIO_Write void GPIO_Write(GPIO_TypeDef GPIOx, uint8_t PortVal) 功能 GPIO 口赋值 输入参数 1 GPIOx 选择操作的 GPIO 口 输入参数 2 PortVal GPIO 口的值 (4) 函数 GPIO_WriteHigh GPIO_WriteHigh void GPIO_WriteHigh(GPIO_TypeDef GPIOx, uint8_t PortPins) 功能 GPIO 口管脚 Pxy 置位 输入参数 1 GPIOx 选择操作的 GPIO 口 输入参数 2 PortPins 选择 GPIO 口管脚 Pxy (5) 函数 GPIO_WriteLow GPIO_WriteLow void GPIO_WriteLow(GPIO_TypeDef GPIOx, uint8_t PortPins) 功能 GPIO 口管脚 Pxy 复位 输入参数 1 GPIOx 选择操作的 GPIO 口 输入参数 2 PortPins 选择 GPIO 口管脚 Pxy (6) 函数 GPIO_ ReadPort GPIO_ReadPort uint8_t GPIO_ReadPort(GPIO_TypeDef GPIOx) 功能 读 GPIO 口 Px 的值 输入参数 GPIOx 选择操作的 GPIO 口 uint8_t 返回 Px 的值 (7) 函数 GPIO_ReadPin GPIO_ReadPin BitStatus GPIO_ReadPin(GPIO_TypeDef GPIOx, GPIO_Pin_TypeDef PortPins) 功能 读 GPIO 口 Pxy 的值 输入参数 1 GPIOx 选择操作的 GPIO 口 输入参数 2 PortPins 选择操作的 PIN 口 Page 7 of 38 V0.2

8 BitStatus 返回 Pxy 的值 二 EXTI 固件库函数 SC92F8003 提供三个外部中断, 可以分别设定其中每个中断源的触发条件为上升 下降或上下沿 1 EXTI 固件库函数列表 EXTI_DeInit EXTI_SetExtInt0xTriggerMode EXTI_SetExtInt1xTriggerMode EXTI_SetExtInt2xTriggerMode EXTI_ITConfig INTx 相关寄存器复位至缺省值 INT0x 初始化 INT1x 初始化 INT2x 初始化 INTx 中断使能与失能配置 2 EXTI 固件库函数详解 (1) 函数 EXTI_ DeInit EXTI_DeInit void EXTI_DeInit(EXTIx_Typedef INTx) 功能 INTx 相关寄存器复位至缺省值 输入参数 INTx 选择外部中断 INTx INTx 可选值 INTx INT0 选择外部中断 0 INT1 选择外部中断 1 INT2 选择外部中断 2 (2) 函数 EXTI_SetExtInt0xTriggerMode EXTI_SetExtInt0xTriggerMode void EXTI_SetExtInt0xTriggerMode(uint8_t INT0x,EXTI_TriggerMode_Typedef TriggerMode) 功能 外部中断 0 初始化 输入参数 1 INT0x 选择外部中断 0 的管脚 INT0x 输入参数 2 TriggerMode 选择中断触发方式 INT0x 可选值 INT0x INT00 INT01 TriggerMode 可选值 TriggerMode EXTI_TRIGGER_RISE_ONLY EXTI_TRIGGER_FALL_ONLY EXTI_TRIGGER_RISE_FALL EXTI_TRIGGER_DISABLE 将 P00 脚设置为外部中断脚将 P01 脚设置为外部中断脚外部中断触发方式为上升沿外部中断触发方式为下降沿外部中断触发方式为上升沿与下降沿关闭外部中断触发 (3) 函数 EXTI_SetExtIn1xTriggerMode Page 8 of 38 V0.2

9 EXTI_SetExtInt1xTriggerMode void EXTI_SetExtInt1xTriggerMode(uint8_t INT1x,EXTI_TriggerMode_Typedef TriggerMode) 功能 外部中断 1 初始化 输入参数 1 INT1x 选择外部中断 1 的管脚 INT1x 输入参数 2 TriggerMode 选择中断触发方式 INT1x 可选值 INT1x INT10 INT11 INT12 INT13 INT14 INT15 INT16 将 P10 脚设置为外部中断脚将 P11 脚设置为外部中断脚将 P12 脚设置为外部中断脚将 P13 脚设置为外部中断脚将 P14 脚设置为外部中断脚将 P15 脚设置为外部中断脚将 P16 脚设置为外部中断脚 (4) 函数 EXTI_SetExtIn2xTriggerMode EXTI_SetExtIn2xTriggerMode void EXTI_SetExtInt2xTriggerMode(uint8_t INT2x,EXTI_TriggerMode_Typedef TriggerMode) 功能 外部中断 2 初始化 输入参数 1 INT2x 选择外部中断 2 的管脚 INT2x 输入参数 2 TriggerMode 选择中断触发方式 INT2x 可选值 INT2x INT21 INT22 INT23 INT24 INT25 INT26 INT27 将 P21 脚设置为外部中断脚将 P22 脚设置为外部中断脚将 P23 脚设置为外部中断脚将 P24 脚设置为外部中断脚将 P25 脚设置为外部中断脚将 P26 脚设置为外部中断脚将 P27 脚设置为外部中断脚 (5) 函数 EXTI_ITConfig EXTI_ITConfig void EXTI_ITConfig(EXTIx_Typedef INTx, FunctionalState NewState, PriorityStatus Priority) 外部中断初始化 功能 输入参数 1 INTx 选择要打开的外部中断 输入参数 2 NewState 外部中断使能 关闭状态, 可取值 ENABLE 或 DISABLE 输入参数 3 Priority 外部中断优先级, 可取值 HIGH 或 LOW 三 PWM 固件库函数 SC92F8003 提供了最多 7 路共用周期 单独可调占空比的 10 位 PWM 输出 :PWM0~6 1 PWM 固件库函数列表 Page 9 of 38 V0.2

10 PWM_DeInit PWM_Init PWM_OutputStateConfig PWM_PolarityConfig PWM_IndependentModeConfig PWM_ComplementaryModeConfig PWM_DeadTimeConfig PWM_Cmd PWM_ITConfig PWM_GetFlagStatus PWM_ClearFlag PWM 相关寄存器复位至缺省值 PWM 初始化配置函数 PWMx 输出使能 / 失能配置 PWMx 正 / 反向输出配置 PWMx 独立工作模式配置 PWMxPWMy 互补工作模式配置函数死区时间配置 PWM 功能开关配置 PWM 中断初始化获取 PWM 中断标志状态清除 PWM 中断标志状态 2 PWM 固件库函数详解 (1) 函数 PWM_DeInit 功能输入参数 PWM_DeInit void PWM_DeInit(void) PWM 相关寄存器复位至缺省值 (2) 函数 PWM_Init PWM_Init void PWM_Init(PWM_PresSel_TypeDef PWM_PresSel, uint16_t PWM_Period) 功能 PWM 初始化 输入参数 1 PWM_PresSel 预分频选择 输入参数 2 PWM_Period PWM 周期配置 PWM_PresSel 可选值 PWM_PresSel PWM_PRESSEL_FOSC_D1 PWM_PRESSEL_FOSC_D2 PWM_PRESSEL_FOSC_D8 PWM_PRESSEL_FOSC_D32 PWM 时钟 1 分频 PWM 时钟 2 分频 PWM 时钟 8 分频 PWM 时钟 32 分频 (3) 函数 PWM_OutputStateConfig PWM_OutputStateConfig void PWM_OutputStateConfig(uint8_t PWM_OutputPin,PWM_OutputState_TypeDef PWM_OutputState); 功能 PWMx 输出使能 / 失能配置 输入参数 1 PWM_OutputPin PWMx 选择 输入参数 2 PWM_OutputState PWM 输出状态配置 PWM_OutputPin 可选值 PWM_OutputPin PWM0 PWM1 PWM2 选择 PWM0 输出选择 PWM1 输出选择 PWM2 输出 Page 10 of 38 V0.2

11 PWM3 PWM4 PWM5 PWM6 PWM_OutputState 可选值 PWM_OutputState PWM_OUTPUTSTATE_DISABLE PWM_OUTPUTSTATE_ENABLE 选择 PWM3 输出选择 PWM4 输出选择 PWM5 输出选择 PWM6 输出该 PIN 脚作为 GPIO 该 PIN 脚作为 PWM 输出脚 (4) 函数 PWM_PolarityConfig PWM_PolarityConfig void PWM_PolarityConfig(uint8_t PWM_OutputPin,PWM_Polarity_TypeDef PWM_Polarity); 功能 PWMx 正 / 反向输出配置 输入参数 1 PWM_OutputPin PWMx 选择 输入参数 2 PWM_Polarity 选择 PWM 输出正向 反向 PWM_Polarity 可选值 PWM_Polarity PWM_POLARITY_NON_INVERT PWM_POLARITY_INVERT PWM 输出不反向 PWM 输出反向 (5) 函数 PWM_IndependentModeConfig PWM_IndependentModeConfig void PWM_IndependentModeConfig(PWM_OutputPin_TypeDef PWM_OutputPin, uint16_t PWM_DutyCycle) 功能 PWMx 独立工作模式配置 输入参数 1 PWM_OutputPin PWMx 选择 输入参数 2 PWM_DutyCycle PWM 占空比, 取值范围为 0~1023 (6) 函数 PWM_ComplementaryModeConfig PWM_ComplementaryModeConfig void PWM_ComplementaryModeConfig(PWM_ComplementaryOutputPin_TypeDef PWM_ComplementaryOutputPin, uint16_t PWM_DutyCycle) 功能 PWMxPWMy 互补工作模式配置 输入参数 1 PWM_ComplementaryOutputPin PWMxPWMy 互补通道选择 输入参数 2 PWM_DutyCycle PWM 占空比, 取值范围为 0~1023 PWM_ComplementaryOutputPin 可选值 PWM_ComplementaryOutputPin PWM0PWM3 PWM1PWM4 PWM2PWM5 互补通道选择 :PWM0 PWM3 互补通道选择 :PWM1 PWM4 互补通道选择 :PWM2 PWM5 (7) 函数 PWM_DeadTimeConfig PWM_DeadTimeConfig Page 11 of 38 V0.2

12 void PWM_DeadTimeConfig(uint8_t PWM012_RisingDeadTime, uint8_t PWM345_fallingDeadTime) 功能 死区时间配置 输入参数 1 PWM012_RisingDeadTime PWM 死区上升时间, 取值范围为 0~15 输入参数 2 PWM345_fallingDeadTime PWM 死区下降时间, 取值范围为 0~15 (8) 函数 PWM_Cmd PWM_Cmd void PWM_Cmd(FunctionalState NewState) 功能 PWM 功能启动 / 关闭选择 输入参数 NewState PWM 功能启动 / 关闭选择, 可取值 ENABLE 或 DISABLE (9) 函数 PWM_ITConfig PWM_ITConfig void PWM_ITConfig(FunctionalState NewState, PriorityStatus Priority) 功能 PWM 中断使能配置 输入参数 1 NewState 中断使能 / 关闭选择, 可取值 ENABLE 或 DISABLE 输入参数 2 Priority 中断优先级选择, 可取值 HIGH 或 LOW (10) 函数 PWM_GetFlagStatus PWM_GetFlagStatus FlagStatus PWM_GetFlagStatus(void) 功能 获得 PWM 中断标志状态 输入参数 FlagStatus PWM 中断标志状态 (11) 函数 PWM_ClearFlag 功能输入参数 PWM_ClearFlag void PWM_ClearFlag(void) 清除 PWM 中断标志状态 四 ADC 固件库函数 SC92F8003 内建一个 12bit 的 11 通道高精度逐次逼近型 ADC, 内部还可选择 1/4VDD 输入通道, 配合内部 2.4V 参考电压用于测量 VDD 电压 1 ADC 固件库函数列表 ADC_DeInit ADC 相关寄存器复位至缺省值 ADC_Init ADC 初始化 ADC_ChannelConfig ADC 输入口配置 ADC_Cmd ADC 功能开关配置 ADC_StartConversion 启动一次 ADC 转换 ADC_GetConversionValue 获得一次 ADC 转换值 ADC_ITConfig ADC 中断初始化 Page 12 of 38 V0.2

13 ADC_GetFlagStatus ADC_ClearFlag 获得 ADC 中断标志状态清空转换标志 2 ADC 固件库函数详解 (1) 函数 ADC_DeInit 功能输入参数 ADC_DeInit void ADC_DeInit(void) ADC 相关寄存器复位至缺省值 (2) 函数 ADC_Init ADC_Init void ADC_Init(ADC_PresSel_TypeDef ADC_PrescalerSelection, ADC_Cycle_TypeDef ADC_Cycle) 功能 ADC 初始化 输入参数 1 ADC_PrescalerSelection 预分频选择 输入参数 2 ADC_Cycle 采样时钟周期选择 ADC_PrescalerSelection 可选值 ADC_PrescalerSelection ADC_PRESSEL_FHRC_D32 ADC_PRESSEL_FHRC_D24 ADC_PRESSEL_FHRC_D16 ADC_PRESSEL_FHRC_D12 ADC_PRESSEL_FHRC_D8 ADC_PRESSEL_FHRC_D6 ADC_PRESSEL_FHRC_D4 ADC_PRESSEL_FHRC_D3 ADC_Cycle 可选值 ADC_Cycle ADC_Cycle_6Cycle ADC_Cycle_36Cycle fadc = fhrc/32 fadc = fhrc/24 fadc = fhrc/16 fadc = fhrc/12 fadc = fhrc/8 fadc = fhrc/6 fadc = fhrc/4 fadc = fhrc/3 ADC 采样时间为 6 个 ADC 采样时钟周期 ADC 采样时间为 36 个 ADC 采样时钟周期 (3) 函数 ADC_ChannelConfig ADC_ChannelConfig 函数原形 void ADC_ChannelConfig(ADC_Channel_TypeDef ADC_Channel, FunctionalState NewState) 功能 ADC 输入口配置 输入参数 1 ADC_Channel ADC 输入口选择 输入参数 2 NewState ADC 输入口使能或关闭 ADC_Channel 可选值 ADC_Channel ADC_CHANNEL_0 ADC_CHANNEL_1 ADC_CHANNEL_2 ADC_CHANNEL_3 ADC_CHANNEL_4 选择 AIN0 做 AD 输入口选择 AIN1 做 AD 输入口选择 AIN2 做 AD 输入口选择 AIN3 做 AD 输入口选择 AIN4 做 AD 输入口 Page 13 of 38 V0.2

14 ADC_CHANNEL_5 ADC_CHANNEL_6 ADC_CHANNEL_7 ADC_CHANNEL_8 ADC_CHANNEL_9 ADC_CHANNEL_VDD_D4 选择 AIN5 做 AD 输入口选择 AIN6 做 AD 输入口选择 AIN7 做 AD 输入口选择 AIN8 做 AD 输入口选择 AIN9 做 AD 输入口选择 1/4VDD 做 AD 输入口 (4) 函数 ADC_Cmd ADC_Cmd 函数原形 void ADC_Cmd(FunctionalState NewState) 功能 ADC 功能开关配置 输入参数 NewState ADC 功能开关选择 (5) 函数 ADC_StartConversion 函数原形功能输入参数 ADC_StartConversion void ADC_StartConversion(void) 开始一次 AD 转换 (6) 函数 ADC_GetConversionValue ADC_GetConversionValue 函数原形 uint16_t ADC_GetConversionValue(void) 功能 获得一次 AD 转换数据 输入参数 uint16_t AD 转换结果 (7) 函数 ADC_ITConfig ADC_ITConfig 函数原形 void ADC_ITConfig(FunctionalState NewState, PriorityStatus Priority) 功能 使能或关闭 ADC 中断 输入参数 1 NewState 中断使能或关闭选择 输入参数 2 Priority 中断优先级选择 (8) 函数 ADC_GetFlagStatus 函数原形功能输入参数 ADC_GetFlagStatus FlagStatus ADC_GetFlagStatus(void) 获得 ADC 中断标志状态 FlagStatus ADC 中断标志状态 (9) 函数 ADC_ClearFlag 函数原形功能输入参数 ADC_ClearFlag void ADC_ClearFlag(void) 清除 ADC 中断标志状态 Page 14 of 38 V0.2

15 五 TIMER0 固件库函数 TIMER0 为一个 16 位定时 / 计数器, 具有计数方式和定时方式两种工作模式 T0 有 4 种工作模式 : (1) 模式 0:13 位定时器 / 计数器模式 (2) 模式 1:16 位定时器 / 计数器模式 (3) 模式 2:8 位自动重载模式 (4) 模式 3: 两个 8 位定时器 / 计数器模式 1 TIMER0 固件库函数列表 TIM0_DeInit TIM0_TimeBaseInit TIM0_WorkMode0Config TIM0_WorkMode1Config TIM0_WorkMode2Config TIM0_WorkMode3Config TIM0_Mode0SetReloadCounter TIM0_Mode1SetReloadCounter TIM0_SetTL0Counter TIM0_SetTH0Counter TIM0_Cmd TIM0_ITConfig TIM0_GetFlagStatus TIM0_ClearFlag TIM0 相关寄存器复位至缺省值配置 TIM0 基本设置 TIM0 工作模式 0 配置 TIM0 工作模式 1 配置 TIM0 工作模式 2 配置 TIM0 工作模式 3 配置 TIM0 工作模式 0 计数值重载 TIM0 工作模式 1 计数值重载 TL0 赋值函数 TH0 赋值函数 TIM0 计数使能或关闭设置 TIM0 中断设置获得 TIM0 中断标志状态清除 TIM0 中断标志 2 TIMER0 固件库函数详解 (1)TIM0_DeInit 函数 功能输入参数 TIM0_DeInit void TIM0_DeInit(void) 将 TIM0 相关寄存器复位至缺省值 (2)TIM0_TimeBaseInit 函数 TIM0_TimeBaseInit void TIM0_TimeBaseInit(TIM0_PresSel_TypeDef TIM0_PrescalerSelection, TIM0_CountMode_TypeDef TIM0_CountMode) 功能 TIM0 基本设置 输入参数 1 TIM0_PrescalerSelection 预分频选择 输入参数 2 TIM0_CountMode 计数 / 定时模式选择 TIM0_PrescalerSelection 可选值 TIM0_PrescalerSelection TIM0_PRESSEL_FSYS_D12 TIM0_PRESSEL_FSYS_D1 TIMER0 计数源来自系统时钟 12 分频 TIMER0 计数源来自系统时钟 TIM0_CountMode 可选值 Page 15 of 38 V0.2

16 TIM0_CountMode TIM0_MODE_TIMER TIM0_MODE_COUNTER TIMER0 做定时器 TIMER0 做计数器 (3)TIM0_WorkMode0Config 函数 TIM0_WorkMode0Config void TIM0_WorkMode0Config(uint16_t TIM0_SetCounter) 功能 TIM0 工作模式 0 配置 输入参数 TIM0_SetCounter TIM0 计数初值 (4)TIM0_WorkMode1Config 函数 TIM0_WorkMode1Config void TIM0_WorkMode1Config(uint16_t TIM0_SetCounter) 功能 TIM0 工作模式 1 配置 输入参数 TIM0_SetCounter TIM0 计数初值 (5)TIM0_WorkMode2Config 函数 TIM0_WorkMode2Config void TIM0_WorkMode2Config(uint8_t TIM0_SetCounter) 功能 TIM0 工作模式 2 配置 输入参数 TIM0_SetCounter TIM0 计数初值 (6)TIM0_WorkMode3Config 函数 TIM0_WorkMode3Config void TIM0_WorkMode3Config(uint8_t TIM0_SetCounter, uint8_t TIM1_SetCounter) 功能 TIM0 工作模式 3 配置 输入参数 1 TIM0_ SetCounter TIM0 初值设置 输入参数 2 TIM1_ SetCounter TIM1 初值设置 (7)TIM0_Mode0SetReloadCounter 函数 TIM0_Mode0SetReloadCounter void TIM0_Mode0SetReloadCounter(uint16_t TIM0_SetCounter) 功能 TIMER0 工作模式 0 计数值重载 输入参数 TIM0_SetCounter TIM0 计数值重载 (8)TIM0_Mode1SetReloadCounter 函数 TIM0_Mode1SetReloadCounter void TIM0_Mode1SetReloadCounter(uint16_t TIM0_SetCounter) 功能 TIMER0 工作模式 1 计数值重载 输入参数 TIM0_SetCounter TIM0 计数值重载 (9)TIM0_Cmd 函数 TIM0_Cmd Page 16 of 38 V0.2

17 void TIM0_Cmd(FunctionalState NewState) 功能 TIM0 使能或关闭 输入参数 NewState TIM0 使能或关闭 (10)TIM0_ITConfig 函数 TIM0_ITConfig void TIM0_ITConfig(FunctionalState NewState, PriorityStatus Priority) 功能 TIM0 中断设置 输入参数 1 NewState 中断使能或关闭 输入参数 2 Priority 中断优先级设置 (11)TIM0_GetFlagStatus 函数 TIM0_GetFlagStatus FlagStatus TIM0_GetFlagStatus(void) 功能 获得 TIM0 中断标志状态 输入参数 FlagStatus 中断标志状态 (12)TIM0_ClearFlag 函数 功能输入参数 TIM0_ClearFlag void TIM0_ClearFlag(void) 清除 TIM0 中断标志 (13)TIM0_SetTL0Counter 函数 功能输入参数 TIM0_SetTL0Counter void TIM0_SetTL0Counter(uint8_t TIM0_SetCounter) 清除 TIM0 中断标志 TIM0_SetCounter 配置 TL0 (14)TIM0_SetTH0Counter 函数 功能输入参数 TIM0_SetTH0Counter void TIM0_SetTH0Counter(uint8_t TIM0_SetCounter) 清除 TIM0 中断标志 TIM0_SetCounter 配置 TH0 六 TIMER1 固件库函数 TIMER1 为一个 16 位定时 / 计数器, 他们具有计数方式和定时方式两种工作模式 T1 有 3 种工作模式 ( 模式 3 不存在 ): (1) 模式 0:13 位定时器 / 计数器模式 (2) 模式 1:16 位定时器 / 计数器模式 (3) 模式 2:8 位自动重载模式 1 TIMER1 固件库函数列表 Page 17 of 38 V0.2

18 TIM1_DeInit TIM1_TimeBaseInit TIM1_WorkMode0Config TIM1_WorkMode1Config TIM1_WorkMode2Config TIM1_Mode0SetReloadCounter TIM1_Mode1SetReloadCounter TIM1_Cmd TIM1_ITConfig TIM1_GetFlagStatus TIM1_ClearFlag TIM1 相关寄存器复位至缺省值配置 TIM1 基本设置 TIM1 工作模式 0 配置 TIM1 工作模式 1 配置 TIM1 工作模式 2 配置 TIM1 工作模式 0 计数值重载 TIM1 工作模式 1 计数值重载 TIM1 计数使能或关闭设置 TIM1 中断设置获得 TIM1 中断标志状态清除 TIM1 中断标志 2 TIMER1 固件库函数详解 (1)TIM1_DeInit 函数 功能输入参数 TIM1_DeInit void TIM1_DeInit(void) 将 TIM1 相关寄存器复位至缺省值 (2)TIM1_TimeBaseInit 函数 TIM1_TimeBaseInit void TIM1_TimeBaseInit(TIM1_PresSel_TypeDef TIM1_PrescalerSelection, TIM1_CountMode_TypeDef TIM1_CountMode) 功能 TIM1 基本设置 输入参数 1 TIM1_PrescalerSelection 预分频选择 输入参数 2 TIM1_CountMode 计数 / 定时模式选择 TIM1_PrescalerSelection 可选值 TIM1_PrescalerSelection TIM1_PRESSEL_FSYS_D12 TIM1_PRESSEL_FSYS_D1 TIM1_CountMode 可选值 TIM0_CountMode TIM1_MODE_TIMER TIM1_MODE_COUNTER TIMER1 计数源来自系统时钟 12 分频 TIMER1 计数源来自系统时钟 TIMER1 做定时器 TIMER1 做计数器 (3)TIM1_WorkMode0Config 函数 TIM1_WorkMode0Config void TIM1_WorkMode0Config(uint16_t TIM1_SetCounter) 功能 TIM1 工作模式 0 配置 输入参数 TIM1_SetCounter TIM1 计数初值 (4)TIM1_WorkMode1Config 函数 TIM1_WorkMode1Config void TIM1_WorkMode1Config(uint16_t TIM1_SetCounter) Page 18 of 38 V0.2

19 功能 TIM1 工作模式 1 配置 输入参数 TIM1_SetCounter TIM1 计数初值 (5)TIM1_WorkMode2Config 函数 TIM1_WorkMode2Config void TIM1_WorkMode2Config(uint8_t TIM1_SetCounter) 功能 TIM1 工作模式 2 配置 输入参数 TIM1_SetCounter TIM1 计数初值 (6)TIM1_Mode0SetReloadCounter 函数 TIM1_Mode0SetReloadCounter void TIM1_Mode0SetReloadCounter(uint16_t TIM1_SetCounter) 功能 TIMER1 工作模式 0 计数值重载 输入参数 TIM1_SetCounter TIM1 计数值重载 (7)TIM1_Mode1SetReloadCounter 函数 TIM1_Mode1SetReloadCounter void TIM1_Mode1SetReloadCounter(uint16_t TIM1_SetCounter) 功能 TIMER1 工作模式 1 计数值重载 输入参数 TIM1_SetCounter TIM1 计数值重载 (8)TIM1_Cmd 函数 TIM1_Cmd void TIM1_Cmd(FunctionalState NewState) 功能 TIM1 使能或关闭 输入参数 NewState TIM1 使能或关闭 (9)TIM1_ITConfig 函数 TIM1_ITConfig void TIM1_ITConfig(FunctionalState NewState, PriorityStatus Priority) 功能 TIM1 中断设置 输入参数 1 NewState 中断使能或关闭 输入参数 2 Priority 中断优先级设置 (10)TIM1_GetFlagStatus 函数 TIM1_GetFlagStatus FlagStatus TIM1_GetFlagStatus(void) 功能 获得 TIM1 中断标志状态 输入参数 FlagStatus 中断标志状态 (11)TIM1_ClearFlag 函数 TIM1_ClearFlag Page 19 of 38 V0.2

20 功能输入参数 void TIM1_ClearFlag(void) 清除 TIM1 中断标志 七 TIMER2 固件库函数 TIMER2 是一个可通过可编程预分频器驱动的 16 位自动装载计数器 其有 4 种工作模式 : (1) 模式 0:16 位捕获模式 (2) 模式 1:16 位自动重载定时器模式 (3) 模式 2: 波特率发生器模式 (4) 模式 3: 可编程时钟输出模式 1 TIMER2 固件库函数列表 TIM2_DeInit TIM2_TimeBaseInit TIM2_WorkMode0Config TIM2_WorkMode1Config TIM2_WorkMode3Config TIM2_SetEXEN2 TIM2_Cmd TIM2_ITConfig TIM2_GetFlagStatus TIM2_ClearFlag TIM2 相关寄存器复位至缺省值配置 TIM2 基本设置 TIM2 工作模式 0 配置 TIM2 工作模式 1 配置 TIM2 工作模式 3 配置 EXEN2 配置 TIM2 计数使能或关闭设置 TIM2 中断设置获得 TIM2 中断标志状态清除 TIM2 中断标志 2 TIMER2 固件库函数详解 (1)TIM2_DeInit 函数 功能输入参数 TIM2_DeInit void TIM2_DeInit (void) TIM2 相关寄存器复位至缺省值 (2)TIM2_TimeBaseInit 函数 TIM2_TimeBaseInit TIM2_TimeBaseInit(TIM2_PresSel_TypeDef TIM2_PrescalerSelection, TIM2_CountMode_TypeDef TIM2_CountMode, TIM2_CountDirection_TypeDef TIM2_CountDirection) 配置 TIM2 基本设置 功能 输入参数 1 TIM2_PrescalerSelection 预分频选择 输入参数 2 TIM2_CountMode 计数 / 定时模式选择 输入参数 3 TIM2_CountDirection 计数方向选择 TIM2_PrescalerSelection 可选值 TIM2_PrescalerSelection TIM2_PRESSEL_FSYS_D12 TIM2_PRESSEL_FSYS_D1 TIMER2 计数源来自系统时钟 12 分频 TIMER2 计数源来自系统时钟 TIM2_CountMode 可选值 Page 20 of 38 V0.2

21 TIM2_CountMode TIM2_MODE_TIMER TIM2_MODE_COUNTER TIM2_CountDirection 可选值 TIM2_CountDirection TIM2_COUNTDIRECTION_UP TIM2_COUNTDIRECTION_DOWN_UP TIMER2 做定时器 TIMER2 做计数器向上计数模式向上 / 向下计数模式 (3)TIM2_WorkMode0Config 函数 TIM2_WorkMode0Config void TIM2_WorkMode0Config(uint16_t TIM2_SetCounter) 功能 TIM2 工作模式 0 配置 输入参数 TIM2_SetCounter TIM2 计数初值配置 (4)TIM2_WorkMode1Config 函数 TIM2_WorkMode1Config void TIM2_WorkMode1Config(uint16_t TIM2_SetCounter) 功能 TIM2 工作模式 1 配置 输入参数 TIM2_SetCounter TIM2 计数初值配置 (5)TIM2_WorkMode3Config 函数 TIM2_WorkMode3Config void TIM2_WorkMode3Config(uint16_t TIM2_SetCounter) 功能 TIM2 工作模式 3 配置 输入参数 TIM2_SetCounter TIM2 计数初值配置 (6)TIM2_SetEXEN2 函数 TIM2_SetEXEN2 void TIM2_SetEXEN2(FunctionalState NewState) 功能 EXEN2 配置 输入参数 NewState 置位 / 复位 EXEN2, 可取值 ENABLE 或 DISABLE (7)TIM2_Cmd 函数 TIM2_Cmd void TIM2_Cmd(FunctionalState NewState) 功能 TIM2 使能或关闭 输入参数 NewState 使能或关闭, 可取值 ENABLE 或 DISABLE (8)TIM2_ITConfig 函数 TIM2_ITConfig void TIM2_ITConfig(FunctionalState NewState, PriorityStatus Priority) 功能 TIM2 中断设置 输入参数 1 NewState 中断使能或关闭, 可取值 ENABLE 或 DISABLE 输入参数 2 Priority 中断优先级设置, 可取值 HIGH 或 LOW Page 21 of 38 V0.2

22 (9)TIM2_GetFlagStatus 函数 TIM2_GetFlagStatus FlagStatus TIM2_GetFlagStatus(TIM2_Flag_TypeDef TIM2_Flag) 功能 获得 TIM2 的中断标志状态 输入参数 TIM2_Flag 标志位选择 FlagStatus 标志位状态 TIM2_Flag 可选值 TIM2_Flag TIM2_FLAG_TF2 TIM2_FLAG_EXF2 标志位 TF2 标志位 EXF2 (10)TIM2_ClearFlag 函数 TIM2_ClearFlag void TIM2_ClearFlag(TIM2_Flag_TypeDef TIM2_Flag) 功能 清空 TIM2 中断标志 输入参数 TIM2_Flag 标志位选择 八 UART0 固件库函数 SC92F8003 支持一个全双工的串行口 UART0 的功能及特性如下 : (1) 三种通讯模式可选 : 模式 0 模式 1 和模式 3 (2) 可选择定时器 1 或定时器 2 作为波特率发生器 (3) 发送和接收完成可产生中断 RI/TI, 该中断标志需要软件清除使用 UART0 需要用到 TIMER1 或 TIMER2 用作波特率发生器, 当使用 TIMER1 时,TIMER1 必须停止计数 (TR1=0), 以保证 UART0 的波特率正常 1 UART0 固件库函数列表 UART0_DeInit UART0_PinSelection UART0_Init UART0_ReceiveData8 UART0_ReceiveData9 UART0_SendData8 UART0_SendData9 UART0_ITConfig UART0_ClearFlag UART0_GetITStatus 将 UART0 寄存器设置为缺省值 UART0 引脚选择 UART0 初始化配置函数获得 SBUF 中的值获得 SBUF 中的值及第九位的值发送 8 位的数据发送 9 位数据使能或关闭 UART0 的中断清空 UART0 中断标志获得 UART0 中断标志状态 2 UART0 固件库函数详解 (1)UART0_DeInit 函数 功能输入参数 UART0_DeInit void UART0_DeInit(void) 将 UART0 寄存器设置为缺省值 (2)UART0_PinSelection 函数 Page 22 of 38 V0.2

23 UART0_PinSelection void UART0_PinSelection(UART0_PinSelection_TypeDef PinSeletion) 功能 UART0 引脚选择 输入参数 PinSeletion 选择 UART0 引脚为 P15P16 或 P11P20 PinSeletion 可选值 PinSeletion UART0_PinSelection_P15P16 UART0_PinSelection_P11P20 TIMER1 做 UART0 时钟源 TIMER2 做 UART0 时钟源 (3)UART0_Init 函数 UART0_Init void UART0_Init(uint32_t Uart0Fsys, uint32_t BaudRate, UART0_Mode_Typedef Mode, UART0_Clock_Typedef ClockMode, UART0_RX_Typedef RxMode) 功能 UART0 初始化配置函数 输入参数 1 Uart0Fsys 系统主频 输入参数 2 BaudRate 波特率 ( 模式 0 下只可选择 UART0_BaudRate_FsysDIV12 或 UART0_BaudRate_FsysDIV4) 输入参数 3 Mode 工作模式 输入参数 4 ClockMode 时钟源选择 输入参数 5 RxMode RX 使能开关 BaudRate 可选值 BaudRate UART0_BaudRate_FsysDIV12 UART0_BaudRate_FsysDIV4 Uint32_t Mode 可选值 Mode UART0_Mode_8B UART0_Mode_10B UART0_Mode_11B ClockMode 可选值 ClockMode UART0_CLOCK_TIMER1 UART0_CLOCK_TIMER2 RxMod 可选值 RxMod UART0_RX_ENABLE UART0_RX_DISABLE 仅模式 0 可用, 串行端口在系统时钟的 1/12 下运行仅模式 0 可用, 串行端口在系统时钟的 1/4 下运行 10/11 位模式波特率 UART0 选为 8 位模式 UART0 选为 10 位模式 UART0 选为 11 位模式 TIMER1 做 UART0 时钟源 TIMER2 做 UART0 时钟源允许 UARTO 接收禁止 UARTO 接收 (4)UART0_ReceiveData8 函数 功能输入参数 UART0_ReceiveData8 uint8_t UART0_ReceiveData8(void) 获得 SBUF 中的值 Page 23 of 38 V0.2

24 uint8_t (5)UART0_ReceiveData9 函数 功能输入参数 UART0_ReceiveData9 uint16_t UART0_ReceiveData9(void) 获得 SBUF 中的值及第九位的值 uint16_t (6)UART0_SendData8 函数 UART0_SendData8 void UART0_SendData8(uint8_t Data) 功能 发送 8 位数据 输入参数 Data 发送数据 (7)UART0_SendData9 函数 UART0_SendData9 void UART0_SendData9(uint16_t Data) 功能 发送 9 位数据 输入参数 Data 发送 8 位数据及第 9 位 (8)UART0_ITConfig 函数 UART0_ITConfig void UART0_ITConfig(FunctionalState NewState, PriorityStatus Priority) 功能 使能或关闭 UART0 中断 输入参数 1 NewState 使能或关闭, 可取值 ENABLE 或 DISABLE 输入参数 2 Priority 优先级, 可取值 LOW 或 HIGH (9)UART0_ClearFlag 函数 UART0_ClearFlag void UART0_ClearFlag(UART0_Flag_TypeDef UART0_FLAG) 功能 清空 UART0 中断标志 输入参数 UART0_FLAG 选择 UART0 中断标志 UART0_FLAG 可选值 UART0_FLAG UART0_FLAG_TI UART0_FLAG_RI 选择发送完成标志位选择接收完成标志位 (10)UART0_GetFlagStatus 函数 UART0_GetFlagStatus FlagStatus UART0_GetFlagStatus(UART0_Flag_Typedef UART0_Flag) 功能 获得 UART0 中断标志状态 输入参数 UART0_FLAG 选择 UART0 中断标志 Page 24 of 38 V0.2

25 九 SSI 固件库函数 SC92F8003 内部集成一个三选一串行接口电路 SSI, 该接口可配置为 SPI TWI UART 中任意一种通信模式 其特点如下 : (1) SPI 模式可配置为主模式或从属模式中的一种 (2) TWI 模式通信时只能做从机 (3) UART 模式可工作在模式 1(10 位全双工异步通信 ) 和模式 3(11 位全双工异步通信 ) 1 SSI 固件库函数列表 SSI_DeInit SSI_SPI_Init SSI_SPI_Cmd SSI_SPI_SendData SSI_SPI_ReceiveData SSI_TWI_Init SSI_TWI_AcknowledgeConfig SSI_TWI_GeneralCallCmd SSI_TWI_Cmd SSI_TWI_SendData SSI_TWI_ReceiveData SSI_UART1_Init SSI_UART1_SendData8 SSI_UART1_ReceiveData8 SSI_UART1_SendData9 SSI_UART1_ReceiveData9 SSI_ITConfig SSI_GetFlagStatus SSI_ClearFlag SSI_PinSelection SSI 相关寄存器复位至缺省值 SPI 初始化配置函数 SPI 功能开关函数 SPI 发送数据获得 SSDAT 中的值 TWI 初始化配置函数 TWI 接收应答使能函数 TWI 通用地址响应使能函数 TWI 功能开关函数 TWI 发送数据获得 SSDAT 中的值 UART1 初始化配置函数 UART1 发送 8 位数据获得 SSDAT 中的值 UART1 发送 9 位数据获得 SSDAT 中的值及第九位的值 SSI 中断初始化获得 SSI 中断标志状态清除 SSI 标志状态 SSI 引脚选择 2 SSI 固件库函数详解 (1)SSI_DeInit 函数 功能输入参数 SSI_DeInit void SSI_DeInit(void) SSI 相关寄存器复位至缺省值 (2)SSI_SPI_Init 函数 SSI_SPI_Init void SSI_SPI_Init(SPI_FirstBit_TypeDef FirstBit, SPI_BaudRatePrescaler_TypeDef BaudRatePrescaler, SPI_Mode_TypeDef Mode, SPI_ClockPolarity_TypeDef ClockPolarity, SPI_ClockPhase_TypeDef ClockPhase, SPI_TXE_INT_TypeDef SPI_TXE_INT) SPI 初始化配置函数 功能 输入参数 1 FirstBit 优先传送位选择 (MSB/LSB) 输入参数 2 BaudRatePrescaler SPI 时钟频率选择 输入参数 3 Mode SPI 工作模式选择 输入参数 4 ClockPolarity SPI 时钟极性选择 Page 25 of 38 V0.2

26 输入参数 5 ClockPhase SPI 时钟相位选择 输入参数 6 SPI_TXE_INT 发送缓存器中断允许选择 FirstBit 可选值 FirstBit SPI_FIRSTBIT_MSB SPI_FIRSTBIT_LSB MSB 优先发送 LSB 优先发送 BaudRatePrescaler 可选值 BaudRatePrescaler SPI_BAUDRATEPRESCALER_4 SPI 时钟速率为系统时钟除以 4 SPI_BAUDRATEPRESCALER_8 SPI 时钟速率为系统时钟除以 8 SPI_BAUDRATEPRESCALER_16 SPI 时钟速率为系统时钟除以 16 SPI_BAUDRATEPRESCALER_32 SPI 时钟速率为系统时钟除以 32 SPI_BAUDRATEPRESCALER_64 SPI 时钟速率为系统时钟除以 64 SPI_BAUDRATEPRESCALER_128 SPI 时钟速率为系统时钟除以 128 SPI_BAUDRATEPRESCALER_256 SPI 时钟速率为系统时钟除以 256 SPI_BAUDRATEPRESCALER_512 SPI 时钟速率为系统时钟除以 512 Mode 可选值 Mode SPI_MODE_MASTER SPI_MODE_SLAVE SPI 为主设备 SPI 为从设备 ClockPolarity 可选值 ClockPolarity SPI_CLOCKPOLARITY_LOW SPI_CLOCKPOLARITY_HIGH ClockPhase 可选值 ClockPhase SPI_CLOCKPHASE_1EDGE SPI_CLOCKPHASE_2EDGE SCK 在空闲状态下为低电平 SCK 在空闲状态下为高电平 SCK 的第一沿采集数据 SCK 的第二沿采集数据 SPI_TXE_INT 可选值 SPI_TXE_INT SPI_TXE_DISINT SPI_TXE_ENINT TXE 为 0 时不允许发送中断 TXE 为 1 时允许发送中断 (3)SSI_SPI_Cmd 函数 SSI_SPI_Cmd void SSI_SPI_Cmd(FunctionalState NewState) 功能 SPI 功能开关函数 输入参数 NewState 使能或关闭, 可取值 ENABLE 或 DISABLE (4)SSI_SPI_SendData 函数 SSI_SPI_SendData void SSI_SPI_SendData(uint8_t Data) Page 26 of 38 V0.2

27 功能 SPI 发送数据 输入参数 Data 发送的数据 (5)SSI_SPI_ReceiveData 函数 SSI_SPI_ReceiveData uint8_t SSI_SPI_ReceiveData(void) 功能 获得 SSDAT 中的值 输入参数 uint8_t SSDAT 中的值 (6)SSI_TWI_Init 函数 SSI_TWI_Init void SSI_TWI_Init(uint8_t TWI_Address) 功能 TWI 初始化配置函数 输入参数 TWI_Address 7 位从机地址配置 (7)SSI_TWI_AcknowledgeConfig 函数 SSI_TWI_AcknowledgeConfig void SSI_TWI_AcknowledgeConfig(FunctionalState NewState) 功能 TWI 接收应答使能函数 输入参数 NewState 使能或关闭, 可取值 ENABLE 或 DISABLE (8)SSI_TWI_GeneralCallCmd 函数 SSI_TWI_GeneralCallCmd void SSI_TWI_GeneralCallCmd(FunctionalState NewState) 功能 TWI 通用地址响应使能函数 输入参数 NewState 使能或关闭, 可取值 ENABLE 或 DISABLE (9)SSI_TWI_Cmd 函数 功能输入参数 SSI_TWI_Cmd void SSI_TWI_Cmd(FunctionalState NewState) TWI 功能开关函数 NewState 使能或关闭, 可取值 ENABLE 或 DISABLE (10)SSI_TWI_SendData 函数 SSI_TWI_SendData void SSI_TWI_SendData(uint8_t Data) 功能 TWI 发送数据 输入参数 Data 发送的数据 (11)SSI_TWI_ReceiveData 函数 Page 27 of 38 V0.2

28 SSI_TWI_ReceiveData uint8_t SSI_TWI_ReceiveData(void) 功能 获得 SSDAT 中的值 输入参数 uint8_t SSDAT 中的值 (12)SSI_UART1_Init 函数 SSI_UART1_Init void SSI_UART1_Init(uint32_t UART1Fsys, uint32_t BaudRate, UART1_Mode_TypeDef Mode, UART1_RX_TypeDef RxMode) UART1 初始化配置函数 UART1Fsys 系统时钟频率 功能 输入参数 1 输入参数 2 BaudRate 波特率 输入参数 3 Mode UART1 工作模式 输入参数 4 RxMode 接收允许选择 Mode 可选值 Mode UART1_Mode_10B UART1_Mode_11B RxMode 可选值 RxMode UART1_RX_ENABLE UART1_RX_DISABLE UART1 选为 10 位模式 UART1 选为 11 位模式允许 UART1 接收禁止 UART1 接收 (13)SSI_UART1_SendData8 函数 SSI_UART1_SendData8 void SSI_UART1_SendData8(uint8_t Data) 功能 UART1 发送 8 位数据 输入参数 Data 发送的数据 (14)SSI_UART1_ReceiveData8 函数 SSI_UART1_ReceiveData8 uint8_t SSI_UART1_ReceiveData8(void) 功能 获得 SSDAT 中的值 输入参数 uint8 SSDAT 中的值 (15)SSI_UART1_SendData9 函数 SSI_UART1_SendData9 void SSI_UART1_SendData9(uint16_t Data) 功能 UART1 发送 9 位数据 输入参数 Data 发送的数据 (16)SSI_UART1_ReceiveData9 函数 Page 28 of 38 V0.2

29 SSI_UART1_ReceiveData9 uint16_t SSI_UART1_ReceiveData9(void) 功能 获得 SSDAT 中的值及第九位的值 输入参数 uint16 SSDAT 中的值及第九位的值 (17)SSI_ITConfig 函数 SSI_ITConfig void SSI_ITConfig(FunctionalState NewState, PriorityStatus Priority) 功能 SSI 中断初始化 输入参数 1 NewState 使能或关闭, 可取值 ENABLE 或 DISABLE 输入参数 2 Priority 优先级, 可取值 LOW 或 HIGH (18)SSI_GetFlagStatus 函数 SSI_GetFlagStatus FlagStatus SSI_GetFlagStatus(SSI_Flag_TypeDef SSI_FLAG) 功能 获得 SSI 中断标志状态 输入参数 SSI_FLAG 所需获取的标志位 FlagStatus SSI 中断标志状态 SSI_FLAG 可选值 SSI_FLAG SPI_FLAG_SPIF SPI_FLAG_WCOL SPI_FLAG_TXE TWI_FLAG_TWIF TWI_FLAG_GCA UART1_FLAG_TI UART1_FLAG_RI SPI 数据传送标志位 SPIF SPI 写入冲突标志位 WCOL SPI 发送缓存器空标志 TXE TWI 中断标志位 TWIF TWI 通用地址响应标志位 GCA UART1 发送中断标志位 TI UART1 接收中断标志位 RI (19)SSI_ClearFlag 函数 SSI_ClearFlag void SSI_ClearFlag(SSI_Flag_TypeDef SSI_FLAG) 功能 清除 SSI 标志状态 输入参数 SSI_FLAG 所需清除的标志位 (20)SSI_PinSelection 函数 SSI_PinSelection void SSI_PinSelection(SSI_PinSelection_TypeDef PinSeletion) 功能 SSI 引脚选择 输入参数 PinSeletion 选择 SSI 引脚为 P10P27P26 或 P21P22P23 PinSeletion 可选值 PinSeletion SSI_PinSelection_P10P27P26 SSI_PinSelection_P21P22P23 SSI 共用引脚为 P10,P27,P26 SSI 共用引脚为 P21,P22,P23 Page 29 of 38 V0.2

30 十 IAP 固件库函数 SC92F8003 的 IAP 操作空间范围有两种模式可选 : (1) 128Byte EEPROM 可以作为数据存储使用 (2) IC 的 Code 区域 ( 范围可选 ) 及 128Byte EEPROM 内都可进行 In Application Programming(IAP) 操作, 主要用作远程程序更新使用 IAP 操作模式选择作为 Code Option 在编程器写入 IC 时选择 1 IAP 固件库函数列表 IAP_DeInit IAP_SetHoldTime IAP_ProgramByte IAP_ReadByte IAP 相关寄存器复位至缺省值 IAP 操作 CPU Hold Time 配置函数 IAP 写入一个字节 IAP 读一个字节 2 IAP 固件库函数详解 (1) 函数 IAP_DeInit 功能输入参数 IAP_DeInit void IAP_DeInit(void) IAP 相关寄存器复位至缺省值 (2) 函数 IAP_SetHoldTime IAP_SetHoldTime void IAP_SetHoldTime(IAP_HoldTime_TypeDef IAP_HoldTime) 功能 IAP 操作 CPU Hold Time 配置函数 输入参数 IAP_HoldTime CPU Hold Time 选择 IAP_HoldTime 可选值 IAP_HoldTime IAP_HOLDTIME_4MS IAP_HOLDTIME_2MS IAP_HOLDTIME_1MS 设定 CPU Hold Time 为 4MS 设定 CPU Hold Time 为 2MS 设定 CPU Hold Time 为 1MS (3) 函数 IAP_ProgramByte IAP_ProgramByte void IAP_ProgramByte(uint16_t Address, uint8_t Data, IAP_MemType_TypeDef IAP_MemType, uint8_t WriteTimeLimit) 功能 IAP 写入一个字节 输入参数 1 Address IAP 操作地址 输入参数 2 Data 写入的数据 输入参数 3 IAP_MemType IAP 操作对象 (ROM IFB EEPROM) 输入参数 4 WriteTimeLimit IAP 操作时限 ( 非零值 ) IAP_MemType 可选值 IAP_MemType Page 30 of 38 V0.2

31 IAP_MEMTYPE_ROM IAP_MEMTYPE_IFB IAP_MEMTYPE_EEPROM IAP 操作区域为 ROM IAP 操作区域为 IFB IAP 操作区域为 EEPROM (4) 函数 IAP_ReadByte IAP_ReadByte uint8_t IAP_ReadByte(uint16_t Address,IAP_MemType_TypeDef IAP_MemType) 功能 IAP 读一个字节 输入参数 1 Address IAP 操作地址 输入参数 2 IAP_MemType IAP 操作对象 (ROM IFB EEPROM) uint8 读到的字节数据 (5) 函数 IAP_SetOperateRange IAP_SetOperateRange void IAP_SetOperateRange(IAP_OperateRange_TypeDef IAP_OperateRange) 功能 允许 IAP 操作的范围设置 输入参数 1 IAP_OperateRange IAP 操作范围 十一 WDT 固件库函数 SC92F8003 有一个看门狗 WDT, 其时钟源为内部的 128kHz 振荡器 1 WDT 固件库函数列表 WDT_DeInit WDT_Init WDT_SetReload WDT 相关寄存器复位至缺省值 WDT 初始化配置函数 WDT 喂狗 2 WDT 固件库函数详解 (1) 函数 WDT_Init 功能输入参数 WDT_DeInit void WDT_DeInit(void) WDT 相关寄存器复位至缺省值 (2) 函数 WDT_Init WDT_Init void WDT_Init(WDT_OverflowTime_TypeDef OverflowTime) 功能 WDT 初始化配置函数 输入参数 OverflowTime WDT 溢出时间选择 OverflowTime 可选值 OverflowTime WDT_OverflowTime_500MS WDT_OverflowTime_250MS WDT_OverflowTime_125MS 看门狗溢出时间为 500MS 看门狗溢出时间为 250MS 看门狗溢出时间为 125MS Page 31 of 38 V0.2

32 WDT_OverflowTime_62_5MS WDT_OverflowTime_31_5MS WDT_OverflowTime_15_75MS WDT_OverflowTime_7_88MS WDT_OverflowTime_3_94MS 看门狗溢出时间为 62.5MS 看门狗溢出时间为 31.5MS 看门狗溢出时间为 15.75MS 看门狗溢出时间为 7.88MS 看门狗溢出时间为 3.94MS (3) 函数 WDT_SetReload WDT_SetReload void WDT_SetReload(void) 功能 看门狗喂狗, 计数值清 0 输入参数 十二 BTM 固件库函数 SC92F8003 内建一个频率为 128kHz 的 RC 振荡电路, 作为低频时钟定时器 Base Timer 的时钟源 该振荡器直接连接一个 Base Timer, 可以把 CPU 从 STOP mode 唤醒, 并且产生中断 1 BTM 固件库函数列表 BTM_DeInit BTM_Init BTM_Cmd BTM_ITConfig BTM_GetFlagStatus BTM_ClearFlag BTM 相关寄存器复位至缺省值 BTM 初始化使能或者使能 BTM 使能或者失能 BTM 中断获得 BTM 中断标志状态清除 BTM 中断标志位 2 BTM 固件库函数详解 (1) 函数 BTM_DeInit 功能输入参数 BTM_DeInit void BTM_DeInit(void) BTM 初始化 (2) 函数 BTM_Init BTM_Init void BTM_Init(BTM_Timebase_TypeDef BTM_Timebase) 功能 低频时钟定时器初始化 输入参数 BTM_TimeBase BTM 中断时间选择 BTM_TimeBase 可选值 BTM_TimeBase BTM_TIMEBASE_15625US BTM_TIMEBASE_31250US BTM_TIMEBASE_62500US BTM_TIMEBASE_125MS BTM_TIMEBASE_250MS 低频时钟中断时间为 MS 低频时钟中断时间为 31.25MS 低频时钟中断时间为 62.5MS 低频时钟中断时间为 125MS 低频时钟中断时间为 250MS Page 32 of 38 V0.2

33 BTM_TIMEBASE_500MS BTM_TIMEBASE_1S BTM_TIMEBASE_2S BTM_TIMEBASE_4S 低频时钟中断时间为 500MS 低频时钟中断时间为 1S 低频时钟中断时间为 2S 低频时钟中断时间为 4S (3) 函数 BTM_Cmd BTM_Cmd void BTM_Cmd(FunctionalState NewState) 功能 使能或者使能 BTM 输入参数 NewState BTM 使能或失能, 可取值 ENABLE 或 DISABLE (4) 函数 BTM_ITConfig BTM_ITConfig void BTM_ITConfig(FunctionalState NewState, PriorityStatus Priority) 功能 使能或者失能 BTM 中断 输入参数 1 NewState BTM 中断使能或失能, 可取值 ENABLE 或 DISABLE 输入参数 2 Priority BTM 中断优先级设置, 可取值 HIGH 或 LOW (5) 函数 BTM_GetFlagStatus 功能输入参数 BTM_GetFlagStatus FlagStatus BTM_GetFlagStatus(void) 获得 BTM 中断标志状态 (6) 函数 BTM_ClearFlag 功能输入参数 BTM_ClearFlag void BTM_ClearFlag(void) 清除 BTM 中断标志位 十三 PWR 固件库函数 SC92F8003 提供了一个特殊功能寄存器 PCON 配置该寄存器的 bit0 和 bit1 可控制 MCU 进入不同的工作模式 1 PWR 固件库函数列表 PWR_DeInit PWR_EnterSTOPMode PWR_EnterIDLEMode PWR 相关寄存器复位至缺省值 MCU 进入 STOP 模式 MCU 进入 Idle 模式 2 PWR 固件库函数详解 (1) 函数 PWR_DeInit PWR_DeInit void PWR_DeInit(void) Page 33 of 38 V0.2

34 功能输入参数 MCU 进入 STOP 模式 (2) 函数 PWR_EnterSTOPMode 功能输入参数 PWR_EnterSTOPMode void PWR_EnterSTOPMode(void) MCU 进入 STOP 模式 (3) 函数 PWR_EnterIDLEMode 功能输入参数 PWR_EnterIDLEMode void PWR_EnterIDLEMode(void) MCU 进入 Idle 模式 十四 CHKSUM 固件库函数 SC92F8003 内建了一个 check sum 校验模块, 可用来实时生成程序代码的 16 位 check sum 值, 用户可利用此 check sum 和理论值比较, 监测程序区的内容是否正确 1 CHKSUM 固件库函数列表 CHKSUM_DeInit CHKSUM_StartOperation CHKSUM_GetCheckValue CHKSUM 相关寄存器复位至缺省值触发一次 check sum 计算获取一次 check sum 计算值 2 CHKSUM 固件库函数详解 (1) 函数 CHKSUM_DeInit 功能输入参数 CHKSUM_DeInit void CHKSUM_DeInit(void) CHKSUM 相关寄存器复位至缺省值 (2) 函数 CHKSUM_StartOperation 功能输入参数 CHKSUM_StartOperation void CHKSUM_StartOperation(void) 触发一次 check sum 计算 (3) 函数 CHKSUM_GetCheckValue CHKSUM_GetCheckValue uint16_t CHKSUM_GetCheckValue(void) Page 34 of 38 V0.2

35 功能 获取一次 check sum 计算值 输入参数 uint16_t check sum 计算值 十五 OPTION 固件库函数 SC92F8003 内部有单独的一块 Flash 区域用于保存客户的上电初始值设置, 此区域称为 Customer Option 区域 用户在烧写 IC 事将此部分代码写入 IC 内部,IC 在复位初始化时, 就会将此设置调入 SFR 作为初始设置 对 OPTION 的操作可以对系统时钟 LVR 看门狗 外部晶振 复位管脚 ADC 参考电压等设置项做出改变 1 OPTION 固件库函数列表 OPTION_WDT_Cmd OPTION_XTIPLL_Cmd OPTION_XTIPLL_SetRange OPTION_SYSCLK_Init OPTION_RST_PIN_Cmd OPTION_LVR_Init OPTION_ADC_VrefConfig OPTION_IAP_SetOperateRange WDT 功能开关函数外部高频晶振使能外部高频晶振频率范围系统时钟分频初始化外部复位管脚使能 LVR 电压选择 ADC 参考电压选择允许 IAP 操作的范围设置 2 OPTION 固件库函数详解 (1) 函数 OPTION_WDT_Cmd OPTION_WDT_Cmd void OPTION_WDT_Cmd(FunctionalState NewState) 功能 WDT 功能开关函数 输入参数 NewState 功能启动 / 关闭选择 (2) 函数 OPTION_XTIPLL_Cmd OPTION_XTIPLL_Cmd void OPTION_XTIPLL_Cmd(FunctionalState NewState) 功能 外部高频晶振使能 输入参数 NewState 功能启动 / 关闭选择 (3) 函数 OPTION_XTIPLL_SetRange OPTION_WDT_Cmd void OPTION_XTIPLL_SetRange(XTIPLL_Range_TypeDef XTIPLL_Range) 功能 外部高频晶振频率范围选择 输入参数 XTIPLL_Range 外部晶振频率选择 XTIPLL_Range 可选值 XTIPLL_Range XTIPLL_HIGHER_THAN_12M XTIPLL_UNDER_12M 外接晶振振荡频率大于等于 12M 外接晶振振荡频率小于 12M Page 35 of 38 V0.2

36 (4) 函数 OPTION_SYSCLK_Init OPTION_SYSCLK_Init void OPTION_SYSCLK_Init(SYSCLK_PresSel_TypeDef SYSCLK_PresSel) 功能 系统时钟分频初始化 输入参数 SYSCLK_PresSel 选择系统时钟分频 SYSCLK_PresSel 可选值 SYSCLK_PresSel SYSCLK_PRESSEL_FOSC_D1 SYSCLK_PRESSEL_FOSC_D2 SYSCLK_PRESSEL_FOSC_D4 SYSCLK_PRESSEL_FOSC_D12 预分频 Fsys = Fosc/1 预分频 Fsys = Fosc/2 预分频 Fsys = Fosc/4 预分频 Fsys = Fosc/12 (5) 函数 OPTION_RST_PIN_Cmd OPTION_RST_PIN_Cmd void OPTION_RST_PIN_Cmd(FunctionalState NewState) 功能 外部复位管脚 (P17) 使能 输入参数 NewState 使能 / 关闭选择 (6) 函数 OPTION_LVR_Init OPTION_LVR_Init void OPTION_LVR_Init(LVR_Config_TypeDef LVR_Config) 功能 LVR 电压选择 输入参数 LVR_Config 选择 LVR 电压 LVR_Config 可选值 LVR_Config LVR_INVALID LVR_2_3V LVR_2_9V LVR_3_7V LVR_4_3V LVR 效 LVR 2.3V 复位 LVR 2.9V 复位 LVR 3.7V 复位 LVR 4.3V 复位 (7) 函数 OPTION_ADC_VrefConfig OPTION_ADC_VrefConfig void OPTION_ADC_VrefConfig(ADC_Vref_TypeDef ADC_Vref) 功能 ADC 参考电压选择 输入参数 ADC_Vref 选择 ADC 参考电压 ADC_Vref 可选值 ADC_Vref ADC_VREF_VDD ADC_VREF_2_4V 选择 VDD 做 ADC 参考电压选择内部 2.4V 做 ADC 参考电压 (8) 函数 OPTION_IAP_SetOperateRange OPTION_IAP_SetOperateRange Page 36 of 38 V0.2

37 void OPTION_IAP_SetOperateRange(IAP_OperateRange_TypeDef IAP_OperateRange) 功能 允许 IAP 操作的范围设置 输入参数 IAP_OperateRange IAP 操作范围 IAP_OperateRange 可选值 IAP_OperateRange IAP_OPERATERANGE_ONLY_EEPROM IAP_OPERATERANGE LAST_0_5K_CODEREGION IAP_OPERATERANGE LAST_1K_CODEREGION IAP_OPERATERANGE ALL_CODEREGION 只允许 EEPROM 进行 IAP 操作允许 ROM 最后 0.5k 和 EEPROM 进行 IAP 操作允许 ROM 最后 1k 和 EEPROM 进行 IAP 操作允许 ROM 和 EEPROM 所有区域进行 IAP 操作 Page 37 of 38 V0.2

38 规格更改记录 版本记录日期 V0.1 初版 2019 年 1 月 V0.2 EXTI/PWM B 部分入参类型与库不一致 2019 年 1 月 Page 38 of 38 V0.2