| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- #include "user_config.h"
- user_config_param_s user_config_param = USER_CONFIG_STAT_DEFAULT_CONFIG;
- /*******************************************************************************
- * @函数名称 set_user_config_param_init
- * @函数说明 解析注册指纹采集图像
- * @输入参数 param:参数
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- void set_user_config_param_init(user_config_param_s *param)
- {
- memset(param,0,sizeof(user_config_param_s));
- param->head = HEAD_VALUE;
- param->can_baud = CAN_BAUD_1000;
- }
- /*******************************************************************************
- * @函数名称 check_can_baud
- * @函数说明 检查CAN波特率
- * @输入参数 baud:波特率
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- bool check_can_baud(uint32_t baud)
- {
- switch(baud)
- {
- case CAN_BAUD_NULL:
- case CAN_BAUD_100:
- case CAN_BAUD_150:
- case CAN_BAUD_200:
- case CAN_BAUD_250:
- case CAN_BAUD_300:
- case CAN_BAUD_400:
- case CAN_BAUD_500:
- case CAN_BAUD_666:
- case CAN_BAUD_800:
- case CAN_BAUD_1000:return true;
- default:return false;
- }
- }
- /*******************************************************************************
- * @函数名称 FLASH_read
- * @函数说明 读取flash
- * @输入参数 addr:地址
- pData:数据指针
- len:数据长度
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- void FLASH_read(uint32_t addr, uint8_t *pData, uint32_t len)
- {
- uint32_t i;
- for(i=0;i<len;i++)
- {
- *pData++ = *(uint8_t*)addr++;
- }
- }
- /*******************************************************************************
- * @函数名称 check_read_config_param
- * @函数说明 比较读到的参数
- * @输入参数 param:参数
- * @输出参数 无
- * @返回参数 比较结果
- *******************************************************************************/
- static bool check_read_config_param(user_config_param_s *param)
- {
- if(param->head != HEAD_VALUE)
- {
- return false;
- }
- if(false == check_can_baud(param->can_baud))
- {
- return false;
- }
- return true;
- }
- /*******************************************************************************
- * @函数名称 User_Config_Read_Config
- * @函数说明 读取配置信息
- * @输入参数 无
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- void User_Config_Read_Config(void)
- {
- user_config_param_s param;
- /* Read the first block */
- FLASH_read(CONFIG_DATAFLASH_ADDR, (uint8_t *)¶m, sizeof(user_config_param_s));
- if(true == check_read_config_param(¶m))
- {
- PRINT("rd config succ!\n");
- memcpy(&user_config_param, ¶m, sizeof(user_config_param_s));
- PRINT("can baud=%d\n", user_config_param.can_baud);
- }
- else{
- PRINT("rd config error!\n");
- set_user_config_param_init(&user_config_param);
- User_Config_Write_Config();
- }
- }
- /*******************************************************************************
- * @函数名称 User_Config_Write_Config
- * @函数说明 写入配置信息
- * @输入参数 无
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- void User_Config_Write_Config(void)
- {
- uint8_t buf[256] = {0xFF};
- memset(buf, 0xFF, 256);
- memcpy(buf, (uint8_t *)&user_config_param, sizeof(user_config_param_s));
- FLASH_Unlock_Fast();
- /* Erase the first block */
- FLASH_ErasePage_Fast(CONFIG_DATAFLASH_ADDR);
- /* Programming DataFlash */
- FLASH_ProgramPage_Fast(CONFIG_DATAFLASH_ADDR, (uint32_t *)buf);
- FLASH_Lock_Fast();
- }
- /*******************************************************************************
- * @函数名称 user_config_init
- * @函数说明 初始化
- * @输入参数 无
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- void user_config_init(void)
- {
- User_Config_Read_Config();
- }
|