MoistureSoftware/Source/BIOS.c

111 lines
3.5 KiB
C
Raw Normal View History

2025-09-28 09:17:22 +00:00
/**************** (C) COPYRIGHT 2023 ɽ<><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿƼ<DCBF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾ *******************
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: Kaiser
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> :
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>:
*********************************** <EFBFBD>޶<EFBFBD><EFBFBD><EFBFBD>¼ ************************************
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>:
* <EFBFBD>޶<EFBFBD><EFBFBD><EFBFBD>:
********************************************************************************/
/******************************** <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *************************************
*
*******************************************************************************/
#include "stm32f10x.h"
#include "BSP.H"
/******************************** <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *************************************
* ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
void BIOS_NVIC_Init(void)
{
NVIC_SetPriorityGrouping(7); // <09><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֹ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6> <20><><EFBFBD><EFBFBD>ͼ
/*
<EFBFBD><EFBFBD>7.4 <EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õĹ<EFBFBD>ϵ
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
0 [7:1] [0:0]
1 [7:2] [1:0]
2 [7:3] [2:0]
3 [7:4] [3:0]
4 [7:5] [4:0]
5 [7:6] [5:0]
6 [7:7] [6:0]
7 <EFBFBD><EFBFBD> [7:0]<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
*/
// __set_CONTROL( 0x03u ); // <09>л<EFBFBD><D0BB><EFBFBD>PSP, <20><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩģʽ
}
// <20><>ʼ<EFBFBD><CABC> ADC1
void ADC1_Init() {
// ʹ<><CAB9> ADC1 ʱ<><CAB1>
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
// <20><>ʼ<EFBFBD><CABC> GPIO <20><><EFBFBD>ã<EFBFBD><C3A3>ɸ<EFBFBD><C9B8><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
// ...
// <20><><EFBFBD><EFBFBD> ADC <20><><EFBFBD><EFBFBD>
ADC_InitTypeDef ADC_InitStruct;
ADC_StructInit(&ADC_InitStruct);
ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;
ADC_InitStruct.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_Init(ADC1, &ADC_InitStruct);
// <20><><EFBFBD><EFBFBD> ADC ͨ<><CDA8> 16 <20><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>
ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_55Cycles5);
// ʹ<><CAB9><EFBFBD>ڲ<EFBFBD><DAB2>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>
ADC_TempSensorVrefintCmd(ENABLE);
// ʹ<><CAB9> ADC1
ADC_Cmd(ADC1, ENABLE);
// У׼ ADC1
ADC_ResetCalibration(ADC1);
while (ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while (ADC_GetCalibrationStatus(ADC1));
}
// <20><>ȡ<EFBFBD>ڲ<EFBFBD><DAB2>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
uint16_t Read_Internal_Temperature() {
// <20><><EFBFBD><EFBFBD> ADC1 ת<><D7AA>
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
// <20>ȴ<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));
// <20><><EFBFBD><EFBFBD> ADC1 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return ADC_GetConversionValue(ADC1);
}
void GPIO_InPutset(void)
{ //ADC1_Init();
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
// GPIO_Init(GPIOA, &GPIO_InitStructure);
}
uint8_t InstrumentTypeRead(void)
{
return ((GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12) | GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13) << 1) | (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14) << 2) | (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15) << 3) );
}
bool SafeCheck(void)
{
return GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8);
}
/******** (C) COPYRIGHT 2023 ɽ<><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿƼ<DCBF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾ **** End Of File ********/