/*************BSP——历史版本记录**************/
/********************BSP——更新日志********************/
当前版本：V1.9.0

版本：V1.9.0
版本发布日期：2025-06-20
支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
（1）sc32f1xxx_dma.h中DMA_DataSize_TypeDef成员合法性判断DMA_DataSize_HakfWord名称改为DMA_DataSize_HalfWord
2.优化项
（1）在IAP_Unlock (void)函数中加入“if(IapWriteFlag==IAP_ENABLE)”和“InitFlashToRam();”两行代码。检查软件锁是否打开（允许IAP写操作）
（2）在IAP_Lock(void)函数中加入“DeInitFlashToRam()”，没写注释
（3）在IAP_WriteCmd(FunctionalState NewState)函数中，加入“if(IapWriteFlag==IAP_ENABLE)”，检查软件锁是否打开（允许IAP写操作）
（4）defined (SC32f10xx)，情况下在IAP_ProgramWord(uint32_t Address,uint32_t Data)函数中加入“if((RCC->RCC_CFG0 &( uint32_t)RCC_CFG0_SYSCLKSW)==RESET)”，检查系统时钟源是否为HIRC，如果使用HIRC作为系统时钟，直接将数据写入指定地址的FLASH存储器；还加入了“if(IapWriteFlag==IAP_ENABLE)”，检查软件锁是否打开（允许IAP写操作）；还计入了else，如果不使用HIRC作为系统时钟，需要跳转到函数指针pWriteIapFun，它指向之前复制到RAM的IAP写入函数。在else语句中加入了“boolType Flag;”、“Flag=(*pWriteIapFun)(Address,Data,IAP_WORD)”，通过函数指针从RAM执行IAP写入功能，同时加入“return Flag;”返回由ram执行的函数的结果。
（5）defined (SC32f10xx)情况下，在IAP_ProgramHalfWord ( uint32_t Address, uint16_t Data )函数中加入“if((RCC->RCC_CFG0 &( uint32_t )RCC_CFG0_SYSCLKSW)==RESET)”，检查系统时钟源是否为HIRC，如果使用HIRC作为系统时钟，直接将数据写入指定地址的FLASH memory中；加入了else，如果不使用HIRC作为系统时钟，我们需要跳转到函数指针pWriteIapFun，它指向之前复制到RAM的IAP写入函数。在“if((RCC->RCC_CFG0 &( uint32_t )RCC_CFG0_SYSCLKSW)==RESET)“中加入”if(IapWriteFlag==IAP_ENABLE)“，检查软件锁是否打开
（6）在defined (SC32f10xx)情况下，在IAP_ProgramByte(uint32_t Address, uint8_t Data)中加入判断语句，与”（4）“的代码内容相同
（7）在defined(SC32f12xx) 情况下，在IAP_ProgramByte(uint32_t Address, uint8_t Data)中加入判断语句，内容同”（6）“
（8）在defined(SC32f12xx)情况下IAP_ProgramHalfWord(uint32_t Address,uint16_t Data)加入判断语句，内容同”（7）“
（9）在IAP_ProgramWordArray(uint32_t Address,uint32_t* ByteArray,uint16_t ArraySize)函数中加入判断语句，检查系统时钟源是否为HIRC，如果使用HIRC作为系统时钟，直接将数据写入指定地址的FLASH memory中；如果不使用HIRC作为系统时钟，我们需要跳转到函数指针pWriteIapFun，它指向之前复制到RAM的IAP写入函数
（10）在IAP_ProgramHalfWordArray ( uint32_t Address, uint16_t* ByteArray, uint16_t ArraySize )函数中加入判断语句，检查系统时钟源是否为HIRC，如果使用HIRC作为系统时钟，直接将数据写入指定地址的FLASH memory中；如果不使用HIRC作为系统时钟，我们需要跳转到函数指针pWriteIapFun，它指向之前复制到RAM的IAP写入函数
（11）IAP_ProgramWordArray、IAP_ProgramByteArray、IAP_ProgramHalfWordArray、IAP_ReadWordArray、IAP_ReadHalfWordArray、IAP_ReadByteArray函数中tmpCnt类型定义为uint16_t
（12）IAP_ProgramWordArray、IAP_ProgramByteArray、IAP_ProgramHalfWordArray、IAP_ProgramWord、IAP_ProgramHalfWord、IAP_ProgramByte，以上六个写函数分成2种区分，分别为(SC32f10xx)、(SC32f12xx）
（13）IAP_EraseSector与IAP_EEPROMEraseSector函数加入软件锁是否解锁判断
（14）由于IAP_ProgramHalfWord与IAP_ProgramByte函数前的宏定义已经包含了该版本适用的所有型号，所以该宏定义无意义，应去掉
（15）WDT使能函数添加注释：The IFB(AHB_CFG->IFBEN) must be enabled first before the WDT enable can be configured.
（16）sc32f1xxx_option.c中所有函数均添加注释：The IFB(AHB_CFG->IFBEN) must be enabled first before the WDT enable can be configured.
3.新增项
（1） 声明了一个名为pInitIapInRam的函数指针
（2）定义了一个静态的函数指针变量pWriteIapFun，并把它初始化为IAP_NOP函数
（3） 定义变量 IapWriteFlag，并初始化它为 IAP_DISABLE
（4）新增函数InitFlashToRam(void)，将函数IAP_Program_InRam的代码数据从ROM复制到RAM，以便该函数可以在RAM中执行
（5）新增函数DeInitFlashToRam(void)，重置IAP_Program_InRam函数在RAM中保留的空间。
（6）新增IAP_NOP(void)函数，具有返回值的无操作（NOP）函数。
（7）新增IAP_Program_InRam(uint32_t Address, uint32_t Data,IAPWRITE_ALIGNTYPE Type)函数，在指定地址编程一个字（32位）。
（8）新增IAP_ProgramArray_InRam(uint32_t Address,uint8_t* ByteArray,uint16_t ArraySize,IAPWRITE_ALIGNTYPE Type)函数，在指定地址编程一个字（32位）
（9）新增枚举类型IAPOPTION_FLAG和IAPWRITE_ALIGNTYPE
（10）新增32位全局变量IapWriteFlag






版本：V1.8.4
版本发布日期：2025-04-16
支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
（1）RCC_GetClocksFreq函数修改，所有型号上电均是默认2分频
（2）RCC_SYSCLKConfig函数修改，统一设置WAIT3，在时钟切换完成后再切换WAIT值
（3）f10.h文件PWM_CON_PWMCLK_Msk应为0x07
（4）f10.h中HIRC_VALUE应为64M
（5）f10.h中修改INT_FSTS_FIF1_Msk拼写错误问题
（6）f12.h文件HIRC_VALUE应为64M
（7）修改CMP_Positive_1_5_V的入参检查名称
（8）批量写入和批量读取的返回值大小和入参大小不匹配，全部修改为uint16_t，同时修改对应头文件函数声明
（9）修改OP_GainSelection函数入参检查参数
（10）TWI_ReceiveData返回值应为8位数据，函数中返回值和函数返回值类型均改为uint8_t，同时修改头文件函数声明
（11）UART_Init函数修改，UARTx->UART_CON位操作由UART_InitStruct->UART_BaudRate改为UART_CON_PERSCALER
（12）_write函数中使用UART3作为入参有误，改为Printf_Uart
2.优化项
（1）删除CMP_GetCMPSTA、CMP_GetFlagStatus、CMP_ClearFlag多余注释，
（2）修改IAP_ProgramByteArray，IAP_ReadWordArray注释
（3）RCC_GetFlagstatus函数注释修改
（4）RCC_PLLConfig、RCC_SYSCLKConfig、RCC_HCLKConfig、RCC_PWM0CLKConfig、RCC_LCDLEDCLKConfig注释修改
（5）PWR.c文件修改PWR_EnterIDLEMode函数注释
3.新增项
（1）新增RCC_ClearFlag函数



版本：V1.8.3
版本发布日期：2025-02-28
支持芯片系列：SC32F1xxx系列
修改点：
1.优化项
（1）将IAP.c反复写入地址问题改为写入1次即可，涉及函数IAP_ProgramByte、IAP_ProgramHalfWord




版本：V1.8.2
版本发布日期：2025-02-10
支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
（1）sc32f1xxx_uart.h中int _write(int fd, char *pbuffer, int size)函数后缺少分号，补上分号
2.新增项
（1）RCC的BSP中新增Delay接口函数，修改对应的.c和.h文件



版本：V1.8.1
版本发布日期：2025-01-14
支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
（1）修改LEDPWM的文件注释
2.优化项
（1）BSP中所有文件注释统一




版本：V1.8
版本发布日期：2024-11-28
支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
（1）保护区函数修改
  (2)   SC32F10XX/SC32F12XX头文件修正
2.新增项
（1）OP增加校验值相关函数




版本：V1.7
版本发布日期：2024-10-14
支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
（1）ADC中断修改
2.优化项
（1）温度读取校验值函数内容修改
（2）QI和QA/QB 分开
3.新增项
（1）新增CAN接口函数
（2）uart标志位增加WK




版本：V1.6
版本发布日期：2024-9-4

支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
  （1）adc.h  adc标志位修正
2.新增项
  （1）tim.h增加映射B
  （2）iap.c iap补充15系列的宏



版本：V1.5
版本发布日期：2024-8-26

支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
  （1）RCC_SYSCLKConfig时钟选择设置错误问题修正
  （2）TIM_ICInit函数修改，仅10xx系列Tim0的Tn不可选用
  （3）CAN_Init/ CAN_TBUFSelect/ CAN_Trans_Select/ CAN_RxThresholdConfig/ CAN_FliterInit/ CAN_ModeSelect增加回读操作
2.优化项
  （1）RCC_NMICmd()修改为先回读再赋值
  （2）10系列PLL的设置的wait操作修改到RCC_SYSCLKConfig函数里面，防止PLL切换不成功
  （3）IAP 擦除操作需要顺序执行，不能直接进行赋值操作，函数已修改
  （4）12xx系列 IAP写入操作2次修改为1次
  （5）UART_LIN_LBDL/ UART_LIN_BKSIZE/ UART_LIN_MODE修改为清除和回读模式配置
  （6）Uart.c  #include "stdio.h"放入宏定义的下方
  （7）OP枚举类型名称需要进行统一，将入参PGA修改为OP
3.新增项
  （1）新增INT模式设置函数（入参：通道，模式），增加INT_TriggerMode函数
  （2）LED/LCD增加函数LED_COMConfig与LED_SEGConfig,使能/失能SEG/COM通道口
  （3）增加CAN_GetRTSL/ CAN_GetRTSH/ CAN_GetTTSL/ CAN_GetTTSH函数





版本：V1.4
版本发布日期：2024-4-25

支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
  （1）UART映射脚修改
  （2）修改文件名，从sc32f10xx改为sc32f1xxx
2.新增项
  （1）RCC增加NMI与wait函数，增加RCC_PWM0CLKConfig函数
  （2）增加printf函数接口






版本：V1.3
版本发布日期：2024-1-31

支持芯片系列：SC32F1xxx系列
修改点：
1.修正项
  （1）HRC/LRC修改为HIRC与LIRC
  （2）修改文件名，从sc32f10xx改为sc32f1xxx
2.新增项
  （1）增加版权声明
  （2）增加UART唤醒标志/10xx系列文件增加TK
  （3）BSP 包添加SC32F12xx系列




版本：V1.2
版本发布日期：2023-12
支持芯片系列：SC32F10XX系列
修改点：
1.修正项
  （1）boolType类型“TURE”修正为“TRUE”，相应IAP函数返回值做修改
  （2）修改文件名，从sc32f10xx改为sc32f1xxx
  （3）修正了部分注释的错误描述
  （4）StatusTypeDef类型里的Status_OK成员值修改为0
2.优化项
  （1）TWI发送函数入参由16位改为8位
  （2）GPIO_Pin_TypeDef类型的GPIO_PIN_LNIB和GPIO_PIN_HNIB成员由uint8_t修改为uint16_t
  （3）LEDPWM周期设置获取函数的参数修改为8位
  （4）TIM_SetAutoreload重载值设置和获取函数，入参/返回值由32位改为16位
  （5）IAP 字、半字的多字节读写函数添加字节对齐判断
3.新增项
  （1）INT标志位的位操作清除语句
  （2）CMP正端/负端切换和查询通道函数（4条）
  （3）晶振停振检测功能NMI函数RCC_EnableCSS()
  （4）中断文件 SC_it 添加NMI中断NMI_Handler



版本：V1.1
版本发布日期：2023-10
支持芯片系列：SC32F10XX系列
修改点：
1.修正项
  （1）SPI管脚映射枚举错误修正
  （2）删除了OPTION_StartupAreaConfig()函数
  （3）INT_ClearFlag函数入参改为一个
  （4）GPIO_Init函数GPIO模式设置由原来的两个结构体成员变量合并为一个
  （5）CRC_Init函数错误修正
  （6）PLLR分频计算公式修正
2.优化项
  （1）ADC_InitTypeDef内成员大小超过16位的修改为uint32_t
  （2）IAP解锁函数添加HIRC使能
  （3）IAP函数的函数返回值从SUCCESS修改为TURE
3.新增项
  （1）IO驱动等级设置函数
  （2）IAP单个读函数
  （3）IAP批量读写函数
  （4）Systick相关函数
  （5）WDT_Cmd函数
  （6）IO未引出管脚设置

版本：V1.0
版本发布日期：2023-4
支持芯片系列：SC32F10XX系列
修改点：
1.初版。
/*************BSP——历史版本记录**************/
/********************BSP——更新日志********************/

