• 大小: 401KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2022-10-05
  • 语言: 其他
  • 标签: rsa  stm32  pkcs1  

资源简介

在stm32上实现了RSA2048利用已有公钥私钥进行加密解密的过程,实现方式是使用PSCK1方式进行填充.
在keil5中可以成功编译运行,串口打印加密解密数据

资源截图

代码片段和文件信息

 #include “includes.h“
static __IO u16 m_GetVolVal=0;//当前平均电压
#if 1//adc初始化
/************************************************************************
  * @描述: 初始化ADC 开启通道0 规则通道
  * @参数: NONE
  * @返回值: None
  **********************************************************************/
void  Adc_Init(void)

ADC_InitTypeDef ADC_InitStructure; 
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_ADC1  ENABLE );   //使能ADC1通道时钟
 
RCC_ADCCLKConfig(RCC_PCLK2_Div6);   //72M/6=12ADC最大时间不能超过14M
//PA0 作为模拟通道输入引脚                         
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入引脚
GPIO_Init(GPIOB &GPIO_InitStructure);

ADC_DeInit(ADC1);  //将外设 ADC1 的全部寄存器重设为缺省值
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //ADC工作模式:ADC1和ADC2工作在独立模式
ADC_InitStructure.ADC_ScanConvMode = DISABLE; //模数转换工作在单通道模式
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //模数转换工作在单次转换模式
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //转换由软件而不是外部触发启动
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 9; //顺序进行规则转换的ADC通道的数目
ADC_Init(ADC1 &ADC_InitStructure); //根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器   
 

ADC_Cmd(ADC1 ENABLE); //使能指定的ADC1

ADC_ResetCalibration(ADC1); //重置指定的ADC1的校准寄存器
 
while(ADC_GetResetCalibrationStatus(ADC1)); //获取ADC1重置校准寄存器的状态设置状态则等待

ADC_StartCalibration(ADC1); //开始指定ADC1的校准状态
 
while(ADC_GetCalibrationStatus(ADC1)); //获取指定ADC1的校准程序设置状态则等待
 
ADC_SoftwareStartConvCmd(ADC1 ENABLE); //使能指定的ADC1的软件转换启动功能

}  
#endif
#if 0//获取adc 运行的时候
/************************************************************************
  * @描述: 获取adc 并转换存入电平电压
  * @参数: NONE
  * @返回值: None   这个函数每100mS调用一次
  **********************************************************************/
#define C_ADC_FILTER_COUNT 20
static u16 Average_ADC = 0;
static u16 m_GetVolVal=0;

void Get_Adc(void)   
{
  static u32 ADC_sum =0 ;
static u8 ADC_Cnt =0 ;
ADC_RegularChannelConfig(ADC1 ADC_Channel_9 1 ADC_SampleTime_239Cycles5 ); //ADC1ADC通道3规则采样顺序值为1采样时间为239.5周期   239.5 + 12.5 = TCOVN 252 周期    12m 就是 252/12 =21us     
  
ADC_SoftwareStartConvCmd(ADC1 ENABLE); //使能指定的ADC1的软件转换启动功能
 
while(!ADC_GetFlagStatus(ADC1 ADC_FLAG_EOC ));//等待转换结束
if(ADC_Cnt++ {
ADC_sum += ADC_GetConversionValue(ADC1);
}
else
{//1S filter
  Average_ADC = ADC_sum/C_ADC_FILTER_COUNT;
  ADC_Cnt = 0;
  ADC_sum = 0;
//m_GetVolVal = Average_ADC*1830/4096;//ADC = Vol*20/(100+20)*4096/3.3-->Vol = ADC*(122/22)*3.3/4096=ADC*18.3/4096
  m_GetVolVal = Average_ADC*1881/4096;//ADC = Vol*10/(47+10)*4096/3.3-->Vol = ADC*(57/10)*3.3/4096=ADC*18.81/4096
}
}
#endif
#if 1//快速获取adc值 6次平均值
#define C_ADC_FILTER_COUNT 60

/************************************************************************
  * @描述: 快速获取启动电压
  * @参数: NO

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-01-12 22:50  Bsp\
     文件       17750  2020-01-11 16:23  Bsp\Bsp.c
     文件        3920  2018-05-02 17:58  Bsp\WK_UP.c
     文件        4520  2018-05-02 16:49  Bsp\adc.c
     文件         217  2018-04-28 12:53  Bsp\adc.h
     文件       10006  2018-05-04 14:01  Bsp\bsp.h
     文件        1535  2017-05-20 19:32  Bsp\delay.c
     文件         238  2016-11-18 01:01  Bsp\delay.h
     文件        4788  2017-10-28 16:58  Bsp\ds18B20.c
     文件         755  2017-10-28 15:10  Bsp\ds18b20.h
     文件        5656  2017-03-22 11:04  Bsp\mc3433.c
     文件        2809  2017-03-21 14:12  Bsp\mc3433.h
     文件        1822  2018-04-28 15:57  Bsp\mtk.c
     文件         278  2018-03-18 20:36  Bsp\mtk.h
     文件        1672  2018-05-03 11:38  Bsp\stmbkb.c
     文件         208  2018-04-28 11:41  Bsp\stmbkb.h
     文件        3094  2016-12-25 21:03  Bsp\stmflash.c
     文件        1046  2016-12-25 14:45  Bsp\stmflash.h
     文件        1627  2017-05-18 13:44  Bsp\wdg.c
     文件         268  2017-02-14 23:21  Bsp\wdg.h
     文件         183  2017-10-12 14:48  Bsp\wkup.h
     目录           0  2020-01-12 22:50  CORE\
     文件       17273  2010-06-07 10:25  CORE\core_cm3.c
     文件       85714  2011-02-09 14:59  CORE\core_cm3.h
     文件       15503  2011-03-10 10:52  CORE\startup_stm32f10x_hd.s
     文件       12765  2020-01-12 21:39  CORE\startup_stm32f10x_md.s
     目录           0  2020-01-12 22:56  Project\
     文件         339  2020-01-12 00:05  Project\EventRecorderStub.scvd
     文件      108146  2020-01-12 21:45  Project\JlinkLog.txt
     文件         755  2017-09-07 14:11  Project\JlinkSettings.ini
     文件        1205  2017-08-18 10:42  Project\MOBD.BAT
............此处省略106个文件信息

评论

共有 条评论