formatting
This commit is contained in:
parent
208eb0a385
commit
bdc34dac30
File diff suppressed because it is too large
Load Diff
|
@ -1,40 +0,0 @@
|
|||
[BREAKPOINTS]
|
||||
ForceImpTypeAny = 0
|
||||
ShowInfoWin = 1
|
||||
EnableFlashBP = 2
|
||||
BPDuringExecution = 0
|
||||
[CFI]
|
||||
CFISize = 0x00
|
||||
CFIAddr = 0x00
|
||||
[CPU]
|
||||
MonModeVTableAddr = 0xFFFFFFFF
|
||||
MonModeDebug = 0
|
||||
MaxNumAPs = 0
|
||||
LowPowerHandlingMode = 0
|
||||
OverrideMemMap = 0
|
||||
AllowSimulation = 1
|
||||
ScriptFile=""
|
||||
[FLASH]
|
||||
EraseType = 0x00
|
||||
CacheExcludeSize = 0x00
|
||||
CacheExcludeAddr = 0x00
|
||||
MinNumBytesFlashDL = 0
|
||||
SkipProgOnCRCMatch = 1
|
||||
VerifyDownload = 1
|
||||
AllowCaching = 1
|
||||
EnableFlashDL = 2
|
||||
Override = 1
|
||||
Device="Cortex-M4"
|
||||
[GENERAL]
|
||||
WorkRAMSize = 0x00
|
||||
WorkRAMAddr = 0x00
|
||||
RAMUsageLimit = 0x00
|
||||
[SWO]
|
||||
SWOLogFile=""
|
||||
[MEM]
|
||||
RdOverrideOrMask = 0x00
|
||||
RdOverrideAndMask = 0xFFFFFFFF
|
||||
RdOverrideAddr = 0xFFFFFFFF
|
||||
WrOverrideOrMask = 0x00
|
||||
WrOverrideAndMask = 0xFFFFFFFF
|
||||
WrOverrideAddr = 0xFFFFFFFF
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
|
@ -65,13 +65,13 @@ static int adc_vol_sample(int argc, char *argv[])
|
|||
}
|
||||
|
||||
ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);
|
||||
|
||||
|
||||
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);
|
||||
rt_kprintf("the value is :%d,", value);
|
||||
|
||||
|
||||
vol = value * REFER_VOLTAGE / CONVERT_BITS;
|
||||
rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100);
|
||||
|
||||
|
||||
ret = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
|
|
|
@ -107,7 +107,7 @@ static rt_err_t swm_rtc_init(void)
|
|||
rtc_initstruct.MinuteIEn = 0;
|
||||
RTC_Init(RTC, &rtc_initstruct);
|
||||
RTC_Start(RTC);
|
||||
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ static rt_rtc_dev_t swm_rtc_device;
|
|||
int rt_hw_rtc_init(void)
|
||||
{
|
||||
rt_err_t result;
|
||||
|
||||
|
||||
swm_rtc_device.ops = &swm_rtc_ops;
|
||||
result = rt_hw_rtc_register(&swm_rtc_device, "rtc", RT_DEVICE_FLAG_RDWR,RT_NULL);
|
||||
if (result != RT_EOK)
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
* Copyright (C) 2010-2014 ARM Limited. All rights reserved.
|
||||
*
|
||||
* $Date: 31. July 2014
|
||||
* $Revision: V1.4.4
|
||||
* $Revision: V1.4.4
|
||||
*
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_common_tables.h
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_common_tables.h
|
||||
*
|
||||
* Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions
|
||||
* Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions
|
||||
*
|
||||
* Target Processor: Cortex-M4/Cortex-M3
|
||||
*
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
* Copyright (C) 2010-2014 ARM Limited. All rights reserved.
|
||||
*
|
||||
* $Date: 31. July 2014
|
||||
* $Revision: V1.4.4
|
||||
* $Revision: V1.4.4
|
||||
*
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_const_structs.h
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_const_structs.h
|
||||
*
|
||||
* Description: This file has constant structs that are initialized for
|
||||
* Description: This file has constant structs that are initialized for
|
||||
* user convenience. For example, some can be given as
|
||||
* arguments to the arm_cfft_f32() function.
|
||||
*
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
* Copyright (C) 2010-2014 ARM Limited. All rights reserved.
|
||||
*
|
||||
* $Date: 12. March 2014
|
||||
* $Revision: V1.4.4
|
||||
* $Revision: V1.4.4
|
||||
*
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_math.h
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_math.h
|
||||
*
|
||||
* Description: Public header file for CMSIS DSP Library
|
||||
* Description: Public header file for CMSIS DSP Library
|
||||
*
|
||||
* Target Processor: Cortex-M7/Cortex-M4/Cortex-M3/Cortex-M0
|
||||
*
|
||||
|
@ -134,7 +134,7 @@
|
|||
* <hr>
|
||||
* CMSIS-DSP in ARM::CMSIS Pack
|
||||
* -----------------------------
|
||||
*
|
||||
*
|
||||
* The following files relevant to CMSIS-DSP are present in the <b>ARM::CMSIS</b> Pack directories:
|
||||
* |File/Folder |Content |
|
||||
* |------------------------------|------------------------------------------------------------------------|
|
||||
|
@ -142,7 +142,7 @@
|
|||
* |\b CMSIS\\DSP_Lib | Software license agreement (license.txt) |
|
||||
* |\b CMSIS\\DSP_Lib\\Examples | Example projects demonstrating the usage of the library functions |
|
||||
* |\b CMSIS\\DSP_Lib\\Source | Source files for rebuilding the library |
|
||||
*
|
||||
*
|
||||
* <hr>
|
||||
* Revision History of CMSIS-DSP
|
||||
* ------------
|
||||
|
@ -347,7 +347,7 @@ extern "C"
|
|||
#else
|
||||
#define ALIGN4 __align(4)
|
||||
#endif
|
||||
#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */
|
||||
#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */
|
||||
|
||||
/**
|
||||
* @brief Error status returned by some functions in the library.
|
||||
|
@ -1187,11 +1187,11 @@ extern "C"
|
|||
/**
|
||||
* @brief Initialization function for the Q31 FIR filter.
|
||||
* @param[in,out] *S points to an instance of the Q31 FIR structure.
|
||||
* @param[in] numTaps Number of filter coefficients in the filter.
|
||||
* @param[in] *pCoeffs points to the filter coefficients.
|
||||
* @param[in] *pState points to the state buffer.
|
||||
* @param[in] blockSize number of samples that are processed at a time.
|
||||
* @return none.
|
||||
* @param[in] numTaps Number of filter coefficients in the filter.
|
||||
* @param[in] *pCoeffs points to the filter coefficients.
|
||||
* @param[in] *pState points to the state buffer.
|
||||
* @param[in] blockSize number of samples that are processed at a time.
|
||||
* @return none.
|
||||
*/
|
||||
void arm_fir_init_q31(
|
||||
arm_fir_instance_q31 *S,
|
||||
|
@ -1217,11 +1217,11 @@ extern "C"
|
|||
/**
|
||||
* @brief Initialization function for the floating-point FIR filter.
|
||||
* @param[in,out] *S points to an instance of the floating-point FIR filter structure.
|
||||
* @param[in] numTaps Number of filter coefficients in the filter.
|
||||
* @param[in] *pCoeffs points to the filter coefficients.
|
||||
* @param[in] *pState points to the state buffer.
|
||||
* @param[in] blockSize number of samples that are processed at a time.
|
||||
* @return none.
|
||||
* @param[in] numTaps Number of filter coefficients in the filter.
|
||||
* @param[in] *pCoeffs points to the filter coefficients.
|
||||
* @param[in] *pState points to the state buffer.
|
||||
* @param[in] blockSize number of samples that are processed at a time.
|
||||
* @return none.
|
||||
*/
|
||||
void arm_fir_init_f32(
|
||||
arm_fir_instance_f32 *S,
|
||||
|
@ -1524,7 +1524,7 @@ extern "C"
|
|||
* @brief Floating-point matrix transpose.
|
||||
* @param[in] *pSrc points to the input matrix
|
||||
* @param[out] *pDst points to the output matrix
|
||||
* @return The function returns either <code>ARM_MATH_SIZE_MISMATCH</code>
|
||||
* @return The function returns either <code>ARM_MATH_SIZE_MISMATCH</code>
|
||||
* or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
|
||||
*/
|
||||
|
||||
|
@ -1536,7 +1536,7 @@ extern "C"
|
|||
* @brief Q15 matrix transpose.
|
||||
* @param[in] *pSrc points to the input matrix
|
||||
* @param[out] *pDst points to the output matrix
|
||||
* @return The function returns either <code>ARM_MATH_SIZE_MISMATCH</code>
|
||||
* @return The function returns either <code>ARM_MATH_SIZE_MISMATCH</code>
|
||||
* or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
|
||||
*/
|
||||
|
||||
|
@ -1548,7 +1548,7 @@ extern "C"
|
|||
* @brief Q31 matrix transpose.
|
||||
* @param[in] *pSrc points to the input matrix
|
||||
* @param[out] *pDst points to the output matrix
|
||||
* @return The function returns either <code>ARM_MATH_SIZE_MISMATCH</code>
|
||||
* @return The function returns either <code>ARM_MATH_SIZE_MISMATCH</code>
|
||||
* or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
|
||||
*/
|
||||
|
||||
|
@ -1575,7 +1575,7 @@ extern "C"
|
|||
* @param[in] *pSrcA points to the first input matrix structure
|
||||
* @param[in] *pSrcB points to the second input matrix structure
|
||||
* @param[out] *pDst points to output matrix structure
|
||||
* @param[in] *pState points to the array for storing intermediate results
|
||||
* @param[in] *pState points to the array for storing intermediate results
|
||||
* @return The function returns either
|
||||
* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
|
||||
*/
|
||||
|
@ -1591,7 +1591,7 @@ extern "C"
|
|||
* @param[in] *pSrcA points to the first input matrix structure
|
||||
* @param[in] *pSrcB points to the second input matrix structure
|
||||
* @param[out] *pDst points to output matrix structure
|
||||
* @param[in] *pState points to the array for storing intermediate results
|
||||
* @param[in] *pState points to the array for storing intermediate results
|
||||
* @return The function returns either
|
||||
* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
|
||||
*/
|
||||
|
@ -1723,7 +1723,7 @@ extern "C"
|
|||
* @param[in,out] *S points to an instance of the floating-point matrix structure.
|
||||
* @param[in] nRows number of rows in the matrix.
|
||||
* @param[in] nColumns number of columns in the matrix.
|
||||
* @param[in] *pData points to the matrix data array.
|
||||
* @param[in] *pData points to the matrix data array.
|
||||
* @return none
|
||||
*/
|
||||
|
||||
|
@ -1738,7 +1738,7 @@ extern "C"
|
|||
* @param[in,out] *S points to an instance of the floating-point matrix structure.
|
||||
* @param[in] nRows number of rows in the matrix.
|
||||
* @param[in] nColumns number of columns in the matrix.
|
||||
* @param[in] *pData points to the matrix data array.
|
||||
* @param[in] *pData points to the matrix data array.
|
||||
* @return none
|
||||
*/
|
||||
|
||||
|
@ -1753,7 +1753,7 @@ extern "C"
|
|||
* @param[in,out] *S points to an instance of the floating-point matrix structure.
|
||||
* @param[in] nRows number of rows in the matrix.
|
||||
* @param[in] nColumns number of columns in the matrix.
|
||||
* @param[in] *pData points to the matrix data array.
|
||||
* @param[in] *pData points to the matrix data array.
|
||||
* @return none
|
||||
*/
|
||||
|
||||
|
@ -2321,7 +2321,7 @@ extern "C"
|
|||
* @param[in] N length of the DCT4.
|
||||
* @param[in] Nby2 half of the length of the DCT4.
|
||||
* @param[in] normalize normalizing factor.
|
||||
* @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>fftLenReal</code> is not a supported transform length.
|
||||
* @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>fftLenReal</code> is not a supported transform length.
|
||||
*/
|
||||
|
||||
arm_status arm_dct4_init_f32(
|
||||
|
@ -2368,7 +2368,7 @@ extern "C"
|
|||
* @param[in] N length of the DCT4.
|
||||
* @param[in] Nby2 half of the length of the DCT4.
|
||||
* @param[in] normalize normalizing factor.
|
||||
* @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>N</code> is not a supported transform length.
|
||||
* @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>N</code> is not a supported transform length.
|
||||
*/
|
||||
|
||||
arm_status arm_dct4_init_q31(
|
||||
|
@ -2415,7 +2415,7 @@ extern "C"
|
|||
* @param[in] N length of the DCT4.
|
||||
* @param[in] Nby2 half of the length of the DCT4.
|
||||
* @param[in] normalize normalizing factor.
|
||||
* @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>N</code> is not a supported transform length.
|
||||
* @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>N</code> is not a supported transform length.
|
||||
*/
|
||||
|
||||
arm_status arm_dct4_init_q15(
|
||||
|
@ -5355,8 +5355,8 @@ extern "C"
|
|||
* @brief Floating-point Park transform
|
||||
* @param[in] Ialpha input two-phase vector coordinate alpha
|
||||
* @param[in] Ibeta input two-phase vector coordinate beta
|
||||
* @param[out] *pId points to output rotor reference frame d
|
||||
* @param[out] *pIq points to output rotor reference frame q
|
||||
* @param[out] *pId points to output rotor reference frame d
|
||||
* @param[out] *pIq points to output rotor reference frame q
|
||||
* @param[in] sinVal sine value of rotation angle theta
|
||||
* @param[in] cosVal cosine value of rotation angle theta
|
||||
* @return none.
|
||||
|
@ -5496,7 +5496,7 @@ extern "C"
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Inverse Park transform for Q31 version
|
||||
* @brief Inverse Park transform for Q31 version
|
||||
* @param[in] Id input coordinate of rotor reference frame d
|
||||
* @param[in] Iq input coordinate of rotor reference frame q
|
||||
* @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha
|
||||
|
|
|
@ -105,11 +105,11 @@ typedef enum IRQn
|
|||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include "core_cm4.h" /* Cortex-M0 processor and core peripherals */
|
||||
#include "core_cm4.h" /* Cortex-M0 processor and core peripherals */
|
||||
#include "system_SWM320.h"
|
||||
|
||||
/******************************************************************************/
|
||||
/* Device Specific Peripheral registers structures */
|
||||
/* Device Specific Peripheral registers structures */
|
||||
/******************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
|
@ -181,11 +181,11 @@ typedef struct
|
|||
__IO uint32_t ADC1IN7;
|
||||
} SYS_TypeDef;
|
||||
|
||||
#define SYS_CLKSEL_LFCK_Pos 0 //Low Frequency Clock Source 0 LRC 1 PLL
|
||||
#define SYS_CLKSEL_LFCK_Pos 0 //Low Frequency Clock Source 0 LRC 1 PLL
|
||||
#define SYS_CLKSEL_LFCK_Msk (0x01 << SYS_CLKSEL_LFCK_Pos)
|
||||
#define SYS_CLKSEL_HFCK_Pos 1 //High Frequency Clock Source 0 HRC 1 XTAL
|
||||
#define SYS_CLKSEL_HFCK_Pos 1 //High Frequency Clock Source 0 HRC 1 XTAL
|
||||
#define SYS_CLKSEL_HFCK_Msk (0x01 << SYS_CLKSEL_HFCK_Pos)
|
||||
#define SYS_CLKSEL_SYS_Pos 2 //系统时钟选择 0 LFCK 1 HFCK
|
||||
#define SYS_CLKSEL_SYS_Pos 2 //系统时钟选择 0 LFCK 1 HFCK
|
||||
#define SYS_CLKSEL_SYS_Msk (0x01 << SYS_CLKSEL_SYS_Pos)
|
||||
|
||||
#define SYS_CLKDIV_SYS_Pos 0 //系统时钟分频 0 1分频 1 2分频
|
||||
|
@ -312,7 +312,7 @@ typedef struct
|
|||
#define SYS_LRCTRIM1_U_Pos 0 //LRC U调控制位
|
||||
#define SYS_LRCTRIM1_U_Msk (0x7FFF << SYS_LRCTRIM1_U_Pos)
|
||||
|
||||
#define SYS_HRCCR_DBL_Pos 0 //Double Frequency 0 20MHz 1 40MHz
|
||||
#define SYS_HRCCR_DBL_Pos 0 //Double Frequency 0 20MHz 1 40MHz
|
||||
#define SYS_HRCCR_DBL_Msk (0x01 << SYS_HRCCR_DBL_Pos)
|
||||
#define SYS_HRCCR_OFF_Pos 1 //High speed RC Off
|
||||
#define SYS_HRCCR_OFF_Msk (0x01 << SYS_HRCCR_OFF_Pos)
|
||||
|
@ -1165,17 +1165,17 @@ typedef struct
|
|||
#define PIN23 23
|
||||
#define PIN24 24
|
||||
|
||||
__IO uint32_t DIR; //0 输入 1 输出
|
||||
__IO uint32_t DIR; //0 输入 1 输出
|
||||
|
||||
__IO uint32_t INTLVLTRG; //Interrupt Level Trigger 1 电平触发中断 0 边沿触发中断
|
||||
__IO uint32_t INTLVLTRG; //Interrupt Level Trigger 1 电平触发中断 0 边沿触发中断
|
||||
|
||||
__IO uint32_t INTBE; //Both Edge,当INTLVLTRG设为边沿触发中断时,此位置1表示上升沿和下降沿都触发中断,置0时触发边沿由INTRISEEN选择
|
||||
|
||||
__IO uint32_t INTRISEEN; //Interrupt Rise Edge Enable 1 上升沿/高电平触发中断 0 下降沿/低电平触发中断
|
||||
__IO uint32_t INTRISEEN; //Interrupt Rise Edge Enable 1 上升沿/高电平触发中断 0 下降沿/低电平触发中断
|
||||
|
||||
__IO uint32_t INTEN; //1 中断使能 0 中断禁止
|
||||
__IO uint32_t INTEN; //1 中断使能 0 中断禁止
|
||||
|
||||
__IO uint32_t INTRAWSTAT; //中断检测单元是否检测到了触发中断的条件 1 检测到了中断触发条件 0 没有检测到中断触发条件
|
||||
__IO uint32_t INTRAWSTAT; //中断检测单元是否检测到了触发中断的条件 1 检测到了中断触发条件 0 没有检测到中断触发条件
|
||||
|
||||
__IO uint32_t INTSTAT; //INTSTAT.PIN0 = INTRAWSTAT.PIN0 & INTEN.PIN0
|
||||
|
||||
|
@ -1193,7 +1193,7 @@ typedef struct
|
|||
|
||||
#define TIMR_CTRL_EN_Pos 0 //此位赋1导致TIMR从LDVAL开始向下递减计数
|
||||
#define TIMR_CTRL_EN_Msk (0x01 << TIMR_CTRL_EN_Pos)
|
||||
#define TIMR_CTRL_CLKSRC_Pos 1 //时钟源:0 内部系统时钟 1 外部引脚脉冲计数
|
||||
#define TIMR_CTRL_CLKSRC_Pos 1 //时钟源:0 内部系统时钟 1 外部引脚脉冲计数
|
||||
#define TIMR_CTRL_CLKSRC_Msk (0x01 << TIMR_CTRL_CLKSRC_Pos)
|
||||
#define TIMR_CTRL_CASCADE_Pos 2 //1 TIMRx的计数时钟为TIMRx-1的溢出信号
|
||||
#define TIMR_CTRL_CASCADE_Msk (0x01 << TIMR_CTRL_CASCADE_Pos)
|
||||
|
@ -1215,9 +1215,9 @@ typedef struct
|
|||
|
||||
#define TIMRG_PCTRL_EN_Pos 0 //开始测量脉宽,脉宽内32位计数器从0开始向上计数
|
||||
#define TIMRG_PCTRL_EN_Msk (0x01 << TIMRG_PCTRL_EN_Pos)
|
||||
#define TIMRG_PCTRL_HIGH_Pos 1 //0 测量低电平长度 1 测量高电平长度
|
||||
#define TIMRG_PCTRL_HIGH_Pos 1 //0 测量低电平长度 1 测量高电平长度
|
||||
#define TIMRG_PCTRL_HIGH_Msk (0x01 << TIMRG_PCTRL_HIGH_Pos)
|
||||
#define TIMRG_PCTRL_CLKSRC_Pos 2 //时钟源:0 内部系统时钟 1 脉宽测量模块变成一个计数器,不再具有脉宽测量功能
|
||||
#define TIMRG_PCTRL_CLKSRC_Pos 2 //时钟源:0 内部系统时钟 1 脉宽测量模块变成一个计数器,不再具有脉宽测量功能
|
||||
#define TIMRG_PCTRL_CLKSRC_Msk (0x01 << TIMRG_PCTRL_CLKSRC_Pos)
|
||||
|
||||
#define TIMRG_IE_TIMR0_Pos 0
|
||||
|
@ -1290,7 +1290,7 @@ typedef struct
|
|||
#define UART_DATA_PAERR_Pos 10 //Parity Error
|
||||
#define UART_DATA_PAERR_Msk (0x01 << UART_DATA_PAERR_Pos)
|
||||
|
||||
#define UART_CTRL_TXIDLE_Pos 0 //TX IDLE: 0 正在发送数据 1 空闲状态,没有数据发送
|
||||
#define UART_CTRL_TXIDLE_Pos 0 //TX IDLE: 0 正在发送数据 1 空闲状态,没有数据发送
|
||||
#define UART_CTRL_TXIDLE_Msk (0x01 << UART_CTRL_TXIDLE_Pos)
|
||||
#define UART_CTRL_TXFF_Pos 1 //TX FIFO Full
|
||||
#define UART_CTRL_TXFF_Msk (0x01 << UART_CTRL_TXFF_Pos)
|
||||
|
@ -1414,19 +1414,19 @@ typedef struct
|
|||
#define SPI_CTRL_EN_Msk (0x01 << SPI_CTRL_EN_Pos)
|
||||
#define SPI_CTRL_SIZE_Pos 4 //Data Size Select, 取值3--15,表示4--16位
|
||||
#define SPI_CTRL_SIZE_Msk (0x0F << SPI_CTRL_SIZE_Pos)
|
||||
#define SPI_CTRL_CPHA_Pos 8 //0 在SCLK的第一个跳变沿采样数据 1 在SCLK的第二个跳变沿采样数据
|
||||
#define SPI_CTRL_CPHA_Pos 8 //0 在SCLK的第一个跳变沿采样数据 1 在SCLK的第二个跳变沿采样数据
|
||||
#define SPI_CTRL_CPHA_Msk (0x01 << SPI_CTRL_CPHA_Pos)
|
||||
#define SPI_CTRL_CPOL_Pos 9 //0 空闲状态下SCLK为低电平 1 空闲状态下SCLK为高电平
|
||||
#define SPI_CTRL_CPOL_Pos 9 //0 空闲状态下SCLK为低电平 1 空闲状态下SCLK为高电平
|
||||
#define SPI_CTRL_CPOL_Msk (0x01 << SPI_CTRL_CPOL_Pos)
|
||||
#define SPI_CTRL_FFS_Pos 10 //Frame Format Select, 0 SPI 1 TI SSI 2 SPI 3 SPI
|
||||
#define SPI_CTRL_FFS_Pos 10 //Frame Format Select, 0 SPI 1 TI SSI 2 SPI 3 SPI
|
||||
#define SPI_CTRL_FFS_Msk (0x03 << SPI_CTRL_FFS_Pos)
|
||||
#define SPI_CTRL_MSTR_Pos 12 //Master, 1 主模式 0 从模式
|
||||
#define SPI_CTRL_MSTR_Pos 12 //Master, 1 主模式 0 从模式
|
||||
#define SPI_CTRL_MSTR_Msk (0x01 << SPI_CTRL_MSTR_Pos)
|
||||
#define SPI_CTRL_FAST_Pos 13 //1 SPI工作时钟 = SYS_Freq/2 0 SPI工作时钟由SPI->CTRL.CLKDIV设置
|
||||
#define SPI_CTRL_FAST_Msk (0x01 << SPI_CTRL_FAST_Pos)
|
||||
#define SPI_CTRL_FILTE_Pos 16 //1 对SPI输入信号进行去抖操作 0 对SPI输入信号不进行去抖操作
|
||||
#define SPI_CTRL_FILTE_Msk (0x01 << SPI_CTRL_FILTE_Pos)
|
||||
#define SPI_CTRL_SSN_H_Pos 17 //0 传输过程中SSN始终为0 1 传输过程中每字符之间会将SSN拉高半个SCLK周期
|
||||
#define SPI_CTRL_SSN_H_Pos 17 //0 传输过程中SSN始终为0 1 传输过程中每字符之间会将SSN拉高半个SCLK周期
|
||||
#define SPI_CTRL_SSN_H_Msk (0x01 << SPI_CTRL_SSN_H_Pos)
|
||||
#define SPI_CTRL_TFCLR_Pos 24 //TX FIFO Clear
|
||||
#define SPI_CTRL_TFCLR_Msk (0x01 << SPI_CTRL_TFCLR_Pos)
|
||||
|
@ -1445,9 +1445,9 @@ typedef struct
|
|||
#define SPI_STAT_RFF_Msk (0x01 << SPI_STAT_RFF_Pos)
|
||||
#define SPI_STAT_RFOVF_Pos 5 //接收FIFO Overflow
|
||||
#define SPI_STAT_RFOVF_Msk (0x01 << SPI_STAT_RFOVF_Pos)
|
||||
#define SPI_STAT_TFLVL_Pos 6 //发送FIFO中数据个数, 0 TFNF=0时表示FIFO内有8个数据,TFNF=1时表示FIFO内有0个数据 1--7 FIFO内有1--7个数据
|
||||
#define SPI_STAT_TFLVL_Pos 6 //发送FIFO中数据个数, 0 TFNF=0时表示FIFO内有8个数据,TFNF=1时表示FIFO内有0个数据 1--7 FIFO内有1--7个数据
|
||||
#define SPI_STAT_TFLVL_Msk (0x07 << SPI_STAT_TFLVL_Pos)
|
||||
#define SPI_STAT_RFLVL_Pos 9 //接收FIFO中数据个数, 0 RFF=1时表示FIFO内有8个数据, RFF=0时表示FIFO内有0个数据 1--7 FIFO内有1--7个数据
|
||||
#define SPI_STAT_RFLVL_Pos 9 //接收FIFO中数据个数, 0 RFF=1时表示FIFO内有8个数据, RFF=0时表示FIFO内有0个数据 1--7 FIFO内有1--7个数据
|
||||
#define SPI_STAT_RFLVL_Msk (0x07 << SPI_STAT_RFLVL_Pos)
|
||||
#define SPI_STAT_BUSY_Pos 15
|
||||
#define SPI_STAT_BUSY_Msk (0x01 << SPI_STAT_BUSY_Pos)
|
||||
|
@ -1506,21 +1506,21 @@ typedef struct
|
|||
#define I2C_CTRL_EN_Pos 7
|
||||
#define I2C_CTRL_EN_Msk (0x01 << I2C_CTRL_EN_Pos)
|
||||
|
||||
#define I2C_MSTCMD_IF_Pos 0 //1 有等待处理的中断,写1清零 有两种情况下此位硬件置位:1、一个字节传输完成 2、总线访问权丢失
|
||||
#define I2C_MSTCMD_IF_Pos 0 //1 有等待处理的中断,写1清零 有两种情况下此位硬件置位:1、一个字节传输完成 2、总线访问权丢失
|
||||
#define I2C_MSTCMD_IF_Msk (0x01 << I2C_MSTCMD_IF_Pos)
|
||||
#define I2C_MSTCMD_TIP_Pos 1 //Transmission In Process
|
||||
#define I2C_MSTCMD_TIP_Msk (0x01 << I2C_MSTCMD_TIP_Pos)
|
||||
#define I2C_MSTCMD_ACK_Pos 3 //接收模式下,0 向发送端反馈ACK 1 向发送端反馈NACK
|
||||
#define I2C_MSTCMD_ACK_Pos 3 //接收模式下,0 向发送端反馈ACK 1 向发送端反馈NACK
|
||||
#define I2C_MSTCMD_ACK_Msk (0x01 << I2C_MSTCMD_ACK_Pos)
|
||||
#define I2C_MSTCMD_WR_Pos 4 // 向Slave写数据时,把这一位写1,自动清零
|
||||
#define I2C_MSTCMD_WR_Pos 4 // 向Slave写数据时,把这一位写1,自动清零
|
||||
#define I2C_MSTCMD_WR_Msk (0x01 << I2C_MSTCMD_WR_Pos)
|
||||
#define I2C_MSTCMD_RD_Pos 5 //写:从Slave读数据时,把这一位写1,自动清零 读:当I2C模块失去总线的访问权时硬件置1
|
||||
#define I2C_MSTCMD_RD_Pos 5 //写:从Slave读数据时,把这一位写1,自动清零 读:当I2C模块失去总线的访问权时硬件置1
|
||||
#define I2C_MSTCMD_RD_Msk (0x01 << I2C_MSTCMD_RD_Pos)
|
||||
#define I2C_MSTCMD_BUSY_Pos 6 //读:当检测到START之后,这一位变1;当检测到STOP之后,这一位变0
|
||||
#define I2C_MSTCMD_BUSY_Msk (0x01 << I2C_MSTCMD_BUSY_Pos)
|
||||
#define I2C_MSTCMD_STO_Pos 6 //写:产生STOP,自动清零
|
||||
#define I2C_MSTCMD_STO_Msk (0x01 << I2C_MSTCMD_STO_Pos)
|
||||
#define I2C_MSTCMD_RXACK_Pos 7 //读:接收到的Slave的ACK位,0 收到ACK 1 收到NACK
|
||||
#define I2C_MSTCMD_RXACK_Pos 7 //读:接收到的Slave的ACK位,0 收到ACK 1 收到NACK
|
||||
#define I2C_MSTCMD_RXACK_Msk (0x01 << I2C_MSTCMD_RXACK_Pos)
|
||||
#define I2C_MSTCMD_STA_Pos 7 //写:产生START,自动清零
|
||||
#define I2C_MSTCMD_STA_Msk (0x01 << I2C_MSTCMD_STA_Pos)
|
||||
|
@ -1609,13 +1609,13 @@ typedef struct
|
|||
#define ADC_CTRL_CH6_Msk (0x01 << ADC_CTRL_CH6_Pos)
|
||||
#define ADC_CTRL_CH7_Pos 7
|
||||
#define ADC_CTRL_CH7_Msk (0x01 << ADC_CTRL_CH7_Pos)
|
||||
#define ADC_CTRL_AVG_Pos 8 //0 1次采样 1 2次采样取平均值 3 4次采样取平均值 7 8次采样取平均值 15 16次采样取平均值
|
||||
#define ADC_CTRL_AVG_Pos 8 //0 1次采样 1 2次采样取平均值 3 4次采样取平均值 7 8次采样取平均值 15 16次采样取平均值
|
||||
#define ADC_CTRL_AVG_Msk (0x0F << ADC_CTRL_AVG_Pos)
|
||||
#define ADC_CTRL_EN_Pos 12
|
||||
#define ADC_CTRL_EN_Msk (0x01 << ADC_CTRL_EN_Pos)
|
||||
#define ADC_CTRL_CONT_Pos 13 //Continuous conversion,只在软件启动模式下有效,0 单次转换,转换完成后START位自动清除停止转换
|
||||
#define ADC_CTRL_CONT_Msk (0x01 << ADC_CTRL_CONT_Pos) // 1 连续转换,启动后一直采样、转换,直到软件清除START位
|
||||
#define ADC_CTRL_TRIG_Pos 14 //转换触发方式:0 软件启动转换 1 PWM触发
|
||||
#define ADC_CTRL_TRIG_Pos 14 //转换触发方式:0 软件启动转换 1 PWM触发
|
||||
#define ADC_CTRL_TRIG_Msk (0x01 << ADC_CTRL_TRIG_Pos)
|
||||
#define ADC_CTRL_CLKSRC_Pos 15 //0 VCO 1 HRC
|
||||
#define ADC_CTRL_CLKSRC_Msk (0x01 << ADC_CTRL_CLKSRC_Pos)
|
||||
|
@ -1780,7 +1780,7 @@ typedef struct
|
|||
#define ADC_CTRL2_PGAGAIN_Pos 3 //0 25.1dB 1 21.6dB 2 11.1dB 3 3.5dB 4 0dB(1.8V) 5 -2.9dB 6 -5.3dB
|
||||
#define ADC_CTRL2_PGAGAIN_Msk (0x07 << ADC_CTRL2_PGAGAIN_Pos)
|
||||
#define ADC_CTRL2_REFPOUT_Pos 23 //1 ADC 内部 1.2V REFP电压输出到外部REFP引脚,用于测量,或在需要1.2V外部REFP时节省成本
|
||||
#define ADC_CTRL2_REFPOUT_Msk (0x01 << ADC_CTRL2_REFPOUT_Pos
|
||||
#define ADC_CTRL2_REFPOUT_Msk (0x01 << ADC_CTRL2_REFPOUT_Pos
|
||||
#define ADC_CTRL2_CLKDIV_Pos 24 //时钟分频,只在时钟源为HRC时有效
|
||||
#define ADC_CTRL2_CLKDIV_Msk (0x1F << ADC_CTRL2_CLKDIV_Pos)
|
||||
#define ADC_CTRL2_PGAVCM_Pos 29
|
||||
|
@ -2235,7 +2235,7 @@ typedef struct
|
|||
#define DMA_CR_AUTORE_Pos 18 //Auto Restart, 通道在传输完成后,是否自动重新启动
|
||||
#define DMA_CR_AUTORE_Msk (0x01 << DMA_CR_AUTORE_Pos)
|
||||
|
||||
#define DMA_AM_SRCAM_Pos 0 //Address Mode 0 地址固定 1 地址递增 2 scatter gather模式
|
||||
#define DMA_AM_SRCAM_Pos 0 //Address Mode 0 地址固定 1 地址递增 2 scatter gather模式
|
||||
#define DMA_AM_SRCAM_Msk (0x03 << DMA_AM_SRCAM_Pos)
|
||||
#define DMA_AM_DSTAM_Pos 8
|
||||
#define DMA_AM_DSTAM_Msk (0x03 << DMA_AM_DSTAM_Pos)
|
||||
|
@ -2950,7 +2950,7 @@ typedef struct
|
|||
#define WDT_CR_RSTEN_Msk (0x01 << WDT_CR_RSTEN_Pos)
|
||||
|
||||
/******************************************************************************/
|
||||
/* Peripheral memory map */
|
||||
/* Peripheral memory map */
|
||||
/******************************************************************************/
|
||||
#define RAM_BASE 0x20000000
|
||||
#define AHB_BASE 0x40000000
|
||||
|
@ -3026,7 +3026,7 @@ typedef struct
|
|||
#define CAN_BASE (APB_BASE + 0x20000)
|
||||
|
||||
/******************************************************************************/
|
||||
/* Peripheral declaration */
|
||||
/* Peripheral declaration */
|
||||
/******************************************************************************/
|
||||
#define SYS ((SYS_TypeDef *)SYS_BASE)
|
||||
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
* 文件名称: system_SWM320.c
|
||||
* 功能说明: SWM320单片机的时钟设置
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: system_SWM320.c
|
||||
* 功能说明: SWM320单片机的时钟设置
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -43,7 +43,7 @@
|
|||
|
||||
/********************************** PLL 设定 **********************************************
|
||||
* VCO输出频率 = PLL输入时钟 / INDIV * 4 * FBDIV
|
||||
* PLL输出频率 = PLL输入时钟 / INDIV * 4 * FBDIV / OUTDIV = VCO输出频率 / OUTDIV
|
||||
* PLL输出频率 = PLL输入时钟 / INDIV * 4 * FBDIV / OUTDIV = VCO输出频率 / OUTDIV
|
||||
* 注意:VCO输出频率需要在 [600MHz, 1200MHz] 之间
|
||||
*****************************************************************************************/
|
||||
#define SYS_PLL_SRC SYS_CLK_20MHz //可取值SYS_CLK_20MHz、SYS_CLK_XTAL
|
||||
|
@ -61,12 +61,12 @@
|
|||
uint32_t SystemCoreClock = __HSI; //System Clock Frequency (Core Clock)
|
||||
uint32_t CyclesPerUs = (__HSI / 1000000); //Cycles per micro second
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称:
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称:
|
||||
* 功能说明: This function is used to update the variable SystemCoreClock and must be called whenever the core clock is changed
|
||||
* 输 入:
|
||||
* 输 出:
|
||||
* 注意事项:
|
||||
* 输 入:
|
||||
* 输 出:
|
||||
* 注意事项:
|
||||
******************************************************************************************************************************************/
|
||||
void SystemCoreClockUpdate(void)
|
||||
{
|
||||
|
@ -115,12 +115,12 @@ void SystemCoreClockUpdate(void)
|
|||
CyclesPerUs = SystemCoreClock / 1000000;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称:
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称:
|
||||
* 功能说明: The necessary initializaiton of systerm
|
||||
* 输 入:
|
||||
* 输 出:
|
||||
* 注意事项:
|
||||
* 输 入:
|
||||
* 输 出:
|
||||
* 注意事项:
|
||||
******************************************************************************************************************************************/
|
||||
void SystemInit(void)
|
||||
{
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_adc.c
|
||||
* 功能说明: SWM320单片机的ADC数模转换器功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_adc.c
|
||||
* 功能说明: SWM320单片机的ADC数模转换器功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_adc.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Init()
|
||||
* 功能说明: ADC模数转换器初始化
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,有效值包括ADC0、ADC1
|
||||
* ADC_InitStructure * initStruct 包含ADC各相关定值的结构体
|
||||
* 功能说明: ADC模数转换器初始化
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,有效值包括ADC0、ADC1
|
||||
* ADC_InitStructure * initStruct 包含ADC各相关定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -152,10 +152,10 @@ void ADC_Init(ADC_TypeDef *ADCx, ADC_InitStructure *initStruct)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Open()
|
||||
* 功能说明: ADC开启,可以软件启动、或硬件触发ADC转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Open()
|
||||
* 功能说明: ADC开启,可以软件启动、或硬件触发ADC转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -164,10 +164,10 @@ void ADC_Open(ADC_TypeDef *ADCx)
|
|||
ADCx->CTRL |= (0x01 << ADC_CTRL_EN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Close()
|
||||
* 功能说明: ADC关闭,无法软件启动、或硬件触发ADC转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Close()
|
||||
* 功能说明: ADC关闭,无法软件启动、或硬件触发ADC转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -176,10 +176,10 @@ void ADC_Close(ADC_TypeDef *ADCx)
|
|||
ADCx->CTRL &= ~(0x01 << ADC_CTRL_EN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Start()
|
||||
* 功能说明: 软件触发模式下启动ADC转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Start()
|
||||
* 功能说明: 软件触发模式下启动ADC转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -188,10 +188,10 @@ void ADC_Start(ADC_TypeDef *ADCx)
|
|||
ADCx->START |= (0x01 << ADC_START_GO_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Stop()
|
||||
* 功能说明: 软件触发模式下停止ADC转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Stop()
|
||||
* 功能说明: 软件触发模式下停止ADC转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -235,12 +235,12 @@ static uint32_t chn2idx(uint32_t chn)
|
|||
return idx;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Read()
|
||||
* 功能说明: 从指定通道读取转换结果
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要读取转换结果的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 读取到的转换结果
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_Read()
|
||||
* 功能说明: 从指定通道读取转换结果
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要读取转换结果的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 读取到的转换结果
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t ADC_Read(ADC_TypeDef *ADCx, uint32_t chn)
|
||||
|
@ -255,12 +255,12 @@ uint32_t ADC_Read(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
return dat;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IsEOC()
|
||||
* 功能说明: 指定通道是否End Of Conversion
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询状态的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IsEOC()
|
||||
* 功能说明: 指定通道是否End Of Conversion
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询状态的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t ADC_IsEOC(ADC_TypeDef *ADCx, uint32_t chn)
|
||||
|
@ -270,11 +270,11 @@ uint32_t ADC_IsEOC(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
return (ADCx->CH[idx].STAT & ADC_STAT_EOC_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_ChnSelect()
|
||||
* 功能说明: ADC通道选通,模数转换会在选通的通道上依次采样转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chns 要选通的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7及其组合(即“按位或”运算)
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_ChnSelect()
|
||||
* 功能说明: ADC通道选通,模数转换会在选通的通道上依次采样转换
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chns 要选通的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7及其组合(即“按位或”运算)
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -284,11 +284,11 @@ void ADC_ChnSelect(ADC_TypeDef *ADCx, uint32_t chns)
|
|||
ADCx->CTRL |= (chns << ADC_CTRL_CH0_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntEOCEn()
|
||||
* 功能说明: 转换完成中断使能
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntEOCEn()
|
||||
* 功能说明: 转换完成中断使能
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -299,11 +299,11 @@ void ADC_IntEOCEn(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IE |= (0x01 << (idx * 4));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntEOCDis()
|
||||
* 功能说明: 转换完成中断禁止
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntEOCDis()
|
||||
* 功能说明: 转换完成中断禁止
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -314,11 +314,11 @@ void ADC_IntEOCDis(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IE &= ~(0x01 << (idx * 4));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntEOCClr()
|
||||
* 功能说明: 转换完成中断标志清除
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntEOCClr()
|
||||
* 功能说明: 转换完成中断标志清除
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -329,12 +329,12 @@ void ADC_IntEOCClr(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IF = (0x01 << (idx * 4));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntEOCStat()
|
||||
* 功能说明: 转换完成中断状态
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntEOCStat()
|
||||
* 功能说明: 转换完成中断状态
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t ADC_IntEOCStat(ADC_TypeDef *ADCx, uint32_t chn)
|
||||
|
@ -344,11 +344,11 @@ uint32_t ADC_IntEOCStat(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
return (ADCx->IF & (0x01 << (idx * 4))) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntOVFEn()
|
||||
* 功能说明: 数据溢出中断使能
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntOVFEn()
|
||||
* 功能说明: 数据溢出中断使能
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -359,11 +359,11 @@ void ADC_IntOVFEn(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IE |= (0x01 << (idx * 4 + 1));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntOVFDis()
|
||||
* 功能说明: 数据溢出中断禁止
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntOVFDis()
|
||||
* 功能说明: 数据溢出中断禁止
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -374,11 +374,11 @@ void ADC_IntOVFDis(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IE &= ~(0x01 << (idx * 4 + 1));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntOVFClr()
|
||||
* 功能说明: 数据溢出中断标志清除
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntOVFClr()
|
||||
* 功能说明: 数据溢出中断标志清除
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -389,12 +389,12 @@ void ADC_IntOVFClr(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IF = (0x01 << (idx * 4 + 1));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntOVFStat()
|
||||
* 功能说明: 数据溢出中断状态
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntOVFStat()
|
||||
* 功能说明: 数据溢出中断状态
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t ADC_IntOVFStat(ADC_TypeDef *ADCx, uint32_t chn)
|
||||
|
@ -404,11 +404,11 @@ uint32_t ADC_IntOVFStat(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
return (ADCx->IF & (0x01 << (idx * 4 + 1))) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntHFULLEn()
|
||||
* 功能说明: FIFO半满中断使能
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntHFULLEn()
|
||||
* 功能说明: FIFO半满中断使能
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -419,11 +419,11 @@ void ADC_IntHFULLEn(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IE |= (0x01 << (idx * 4 + 2));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntHFULLDis()
|
||||
* 功能说明: FIFO半满中断禁止
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntHFULLDis()
|
||||
* 功能说明: FIFO半满中断禁止
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -434,11 +434,11 @@ void ADC_IntHFULLDis(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IE &= ~(0x01 << (idx * 4 + 2));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntHFULLClr()
|
||||
* 功能说明: FIFO半满中断标志清除
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntHFULLClr()
|
||||
* 功能说明: FIFO半满中断标志清除
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -449,12 +449,12 @@ void ADC_IntHFULLClr(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IF = (0x01 << (idx * 4 + 2));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntHFULLStat()
|
||||
* 功能说明: FIFO半满中断状态
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntHFULLStat()
|
||||
* 功能说明: FIFO半满中断状态
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t ADC_IntHFULLStat(ADC_TypeDef *ADCx, uint32_t chn)
|
||||
|
@ -464,11 +464,11 @@ uint32_t ADC_IntHFULLStat(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
return (ADCx->IF & (0x01 << (idx * 4 + 2))) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntFULLEn()
|
||||
* 功能说明: FIFO满中断使能
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntFULLEn()
|
||||
* 功能说明: FIFO满中断使能
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -479,11 +479,11 @@ void ADC_IntFULLEn(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IE |= (0x01 << (idx * 4 + 3));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntFULLDis()
|
||||
* 功能说明: FIFO满中断禁止
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntFULLDis()
|
||||
* 功能说明: FIFO满中断禁止
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -494,11 +494,11 @@ void ADC_IntFULLDis(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IE &= ~(0x01 << (idx * 4 + 3));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntFULLClr()
|
||||
* 功能说明: FIFO满中断标志清除
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntFULLClr()
|
||||
* 功能说明: FIFO满中断标志清除
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要设置的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -509,12 +509,12 @@ void ADC_IntFULLClr(ADC_TypeDef *ADCx, uint32_t chn)
|
|||
ADCx->IF = (0x01 << (idx * 4 + 3));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntFULLStat()
|
||||
* 功能说明: FIFO满中断状态
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: ADC_IntFULLStat()
|
||||
* 功能说明: FIFO满中断状态
|
||||
* 输 入: ADC_TypeDef * ADCx 指定要被设置的ADC,可取值包括ADC
|
||||
* uint32_t chn 要查询的通道,有效值ADC_CH0、ADC_CH1、... ... 、ADC_CH7
|
||||
* 输 出: uint32_t 1 该通道完成了转换 0 该通道未完成转换
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t ADC_IntFULLStat(ADC_TypeDef *ADCx, uint32_t chn)
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_can.c
|
||||
* 功能说明: SWM320单片机的CAN模块驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 功能说明: SWM320单片机的CAN模块驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -21,11 +21,11 @@
|
|||
#include "SWM320.h"
|
||||
#include "SWM320_can.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Init()
|
||||
* 功能说明: CAN接口初始化
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* CAN_InitStructure * initStruct 包含CAN接口相关设定值的结构体
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Init()
|
||||
* 功能说明: CAN接口初始化
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* CAN_InitStructure * initStruct 包含CAN接口相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -84,10 +84,10 @@ void CAN_Init(CAN_TypeDef *CANx, CAN_InitStructure *initStruct)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Open()
|
||||
* 功能说明: CAN接口打开
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Open()
|
||||
* 功能说明: CAN接口打开
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -96,10 +96,10 @@ void CAN_Open(CAN_TypeDef *CANx)
|
|||
CANx->CR &= ~(0x01 << CAN_CR_RST_Pos); //退出复位模式,进入工作模式
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Close()
|
||||
* 功能说明: CAN接口关闭
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Close()
|
||||
* 功能说明: CAN接口关闭
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -108,15 +108,15 @@ void CAN_Close(CAN_TypeDef *CANx)
|
|||
CANx->CR |= (0x01 << CAN_CR_RST_Pos); //进入复位模式,不能发送和接收数据
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Transmit()
|
||||
* 功能说明: CAN发送数据
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint32_t format CAN_FRAME_STD 标准帧 CAN_FRAME_EXT 扩展帧
|
||||
* uint32_t id 消息ID
|
||||
* uint8_t data[] 要发送的数据
|
||||
* uint32_t size 要发送的数据的个数
|
||||
* uint32_t once 只发送一次,即使发送失败(仲裁丢失、发送出错、NAK)也不尝试重发
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Transmit()
|
||||
* 功能说明: CAN发送数据
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint32_t format CAN_FRAME_STD 标准帧 CAN_FRAME_EXT 扩展帧
|
||||
* uint32_t id 消息ID
|
||||
* uint8_t data[] 要发送的数据
|
||||
* uint32_t size 要发送的数据的个数
|
||||
* uint32_t once 只发送一次,即使发送失败(仲裁丢失、发送出错、NAK)也不尝试重发
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -172,13 +172,13 @@ void CAN_Transmit(CAN_TypeDef *CANx, uint32_t format, uint32_t id, uint8_t data[
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_TransmitRequest()
|
||||
* 功能说明: CAN发送远程请求,请求远程节点发送数据
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint32_t format CAN_FRAME_STD 标准帧 CAN_FRAME_EXT 扩展帧
|
||||
* uint32_t id 消息ID
|
||||
* uint32_t once 只发送一次,即使发送失败(仲裁丢失、发送出错、NAK)也不尝试重发
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_TransmitRequest()
|
||||
* 功能说明: CAN发送远程请求,请求远程节点发送数据
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint32_t format CAN_FRAME_STD 标准帧 CAN_FRAME_EXT 扩展帧
|
||||
* uint32_t id 消息ID
|
||||
* uint32_t once 只发送一次,即使发送失败(仲裁丢失、发送出错、NAK)也不尝试重发
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -215,11 +215,11 @@ void CAN_TransmitRequest(CAN_TypeDef *CANx, uint32_t format, uint32_t id, uint32
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Receive()
|
||||
* 功能说明: CAN接收数据
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* CAN_RXMessage *msg 接收到的消息存储在此结构体变量中
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_Receive()
|
||||
* 功能说明: CAN接收数据
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* CAN_RXMessage *msg 接收到的消息存储在此结构体变量中
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -253,11 +253,11 @@ void CAN_Receive(CAN_TypeDef *CANx, CAN_RXMessage *msg)
|
|||
CANx->CMD = (1 << CAN_CMD_RRB_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_TXComplete()
|
||||
* 功能说明: 发送是否完成
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 1 已经完成 0 还未完成
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_TXComplete()
|
||||
* 功能说明: 发送是否完成
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 1 已经完成 0 还未完成
|
||||
* 注意事项: 发送被Abort也会触发发送完成,但不会触发发送成功
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t CAN_TXComplete(CAN_TypeDef *CANx)
|
||||
|
@ -265,11 +265,11 @@ uint32_t CAN_TXComplete(CAN_TypeDef *CANx)
|
|||
return (CANx->SR & CAN_SR_TXBR_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_TXSuccess()
|
||||
* 功能说明: 发送是否成功
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 1 发送成功 0 发送失败
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_TXSuccess()
|
||||
* 功能说明: 发送是否成功
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 1 发送成功 0 发送失败
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t CAN_TXSuccess(CAN_TypeDef *CANx)
|
||||
|
@ -277,10 +277,10 @@ uint32_t CAN_TXSuccess(CAN_TypeDef *CANx)
|
|||
return (CANx->SR & CAN_SR_TXOK_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_AbortTransmit()
|
||||
* 功能说明: 终止发送
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_AbortTransmit()
|
||||
* 功能说明: 终止发送
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 正在进行的发送无法终止,但执行此命令后若发送失败不会再重发
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -289,11 +289,11 @@ void CAN_AbortTransmit(CAN_TypeDef *CANx)
|
|||
CANx->CMD = (1 << CAN_CMD_ABTTX_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_TXBufferReady()
|
||||
* 功能说明: TX Buffer是否准备好可以写入消息
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 1 已准备好 0 未准备好
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_TXBufferReady()
|
||||
* 功能说明: TX Buffer是否准备好可以写入消息
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 1 已准备好 0 未准备好
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t CAN_TXBufferReady(CAN_TypeDef *CANx)
|
||||
|
@ -301,11 +301,11 @@ uint32_t CAN_TXBufferReady(CAN_TypeDef *CANx)
|
|||
return (CANx->SR & CAN_SR_TXBR_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_RXDataAvailable()
|
||||
* 功能说明: RX FIFO中是否有数据可读出
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 1 有数据可读出 0 没有数据
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_RXDataAvailable()
|
||||
* 功能说明: RX FIFO中是否有数据可读出
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 1 有数据可读出 0 没有数据
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t CAN_RXDataAvailable(CAN_TypeDef *CANx)
|
||||
|
@ -313,14 +313,14 @@ uint32_t CAN_RXDataAvailable(CAN_TypeDef *CANx)
|
|||
return (CANx->SR & CAN_SR_RXDA_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_SetBaudrate()
|
||||
* 功能说明: 设置波特率
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint32_t baudrate 波特率,即位传输速率
|
||||
* uint32_t CAN_BS1 CAN_BS1_1tq、CAN_BS1_2tq、... ... 、CAN_BS1_16tq
|
||||
* uint32_t CAN_BS2 CAN_BS2_1tq、CAN_BS2_2tq、... ... 、CAN_BS2_8tq
|
||||
* uint32_t CAN_SJW CAN_SJW_1tq、CAN_SJW_2tq、CAN_SJW_3tq、CAN_SJW_4tq
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_SetBaudrate()
|
||||
* 功能说明: 设置波特率
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint32_t baudrate 波特率,即位传输速率
|
||||
* uint32_t CAN_BS1 CAN_BS1_1tq、CAN_BS1_2tq、... ... 、CAN_BS1_16tq
|
||||
* uint32_t CAN_BS2 CAN_BS2_1tq、CAN_BS2_2tq、... ... 、CAN_BS2_8tq
|
||||
* uint32_t CAN_SJW CAN_SJW_1tq、CAN_SJW_2tq、CAN_SJW_3tq、CAN_SJW_4tq
|
||||
* 输 出: 无
|
||||
* 注意事项: 设置前需要先调用CAN_Close()关闭CAN模块
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -334,12 +334,12 @@ void CAN_SetBaudrate(CAN_TypeDef *CANx, uint32_t baudrate, uint32_t CAN_BS1, uin
|
|||
((SystemCoreClock / 2 / baudrate / (1 + (CAN_BS1 + 1) + (CAN_BS2 + 1)) - 1) << CAN_BT0_BRP_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_SetFilter32b()
|
||||
* 功能说明: 设置接收滤波器,1个32位滤波器
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint32_t check 与mask一起决定了接收到的Message是否是自己需要的:check & (~mask) == ID & (~mask)的Message通过过滤
|
||||
* uint32_t mask
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_SetFilter32b()
|
||||
* 功能说明: 设置接收滤波器,1个32位滤波器
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint32_t check 与mask一起决定了接收到的Message是否是自己需要的:check & (~mask) == ID & (~mask)的Message通过过滤
|
||||
* uint32_t mask
|
||||
* 输 出: 无
|
||||
* 注意事项: 设置前需要先调用CAN_Close()关闭CAN模块
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -359,14 +359,14 @@ void CAN_SetFilter32b(CAN_TypeDef *CANx, uint32_t check, uint32_t mask)
|
|||
CANx->FILTER.ACR[0] = (check >> 24) & 0xFF;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_SetFilter16b()
|
||||
* 功能说明: 设置接收滤波器,2个16位滤波器
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint16_t check1 与mask一起决定了接收到的Message是否是自己需要的:check & (~mask) == ID & (~mask)的Message通过过滤
|
||||
* uint16_t mask1
|
||||
* uint16_t check2
|
||||
* uint16_t mask2
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_SetFilter16b()
|
||||
* 功能说明: 设置接收滤波器,2个16位滤波器
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* uint16_t check1 与mask一起决定了接收到的Message是否是自己需要的:check & (~mask) == ID & (~mask)的Message通过过滤
|
||||
* uint16_t mask1
|
||||
* uint16_t check2
|
||||
* uint16_t mask2
|
||||
* 输 出: 无
|
||||
* 注意事项: 设置前需要先调用CAN_Close()关闭CAN模块
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -386,10 +386,10 @@ void CAN_SetFilter16b(CAN_TypeDef *CANx, uint16_t check1, uint16_t mask1, uint16
|
|||
CANx->FILTER.ACR[0] = (check2 >> 8) & 0xFF;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXNotEmptyEn()
|
||||
* 功能说明: 当RX FIFO中有数据时(非空)触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXNotEmptyEn()
|
||||
* 功能说明: 当RX FIFO中有数据时(非空)触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -398,10 +398,10 @@ void CAN_INTRXNotEmptyEn(CAN_TypeDef *CANx)
|
|||
CANx->IE |= (1 << CAN_IE_RXDA_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXNotEmptyDis()
|
||||
* 功能说明: 当RX FIFO中有数据时(非空)触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXNotEmptyDis()
|
||||
* 功能说明: 当RX FIFO中有数据时(非空)触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -410,10 +410,10 @@ void CAN_INTRXNotEmptyDis(CAN_TypeDef *CANx)
|
|||
CANx->IE &= ~(1 << CAN_IE_RXDA_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTTXBufEmptyEn()
|
||||
* 功能说明: 当TX Buffer空时触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTTXBufEmptyEn()
|
||||
* 功能说明: 当TX Buffer空时触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -422,10 +422,10 @@ void CAN_INTTXBufEmptyEn(CAN_TypeDef *CANx)
|
|||
CANx->IE |= (1 << CAN_IE_TXBR_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTTXBufEmptyDis()
|
||||
* 功能说明: 当TX Buffer空时触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTTXBufEmptyDis()
|
||||
* 功能说明: 当TX Buffer空时触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -434,10 +434,10 @@ void CAN_INTTXBufEmptyDis(CAN_TypeDef *CANx)
|
|||
CANx->IE &= ~(1 << CAN_IE_TXBR_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTErrWarningEn()
|
||||
* 功能说明: TXERR/RXERR计数值达到Error Warning Limit时触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTErrWarningEn()
|
||||
* 功能说明: TXERR/RXERR计数值达到Error Warning Limit时触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -446,10 +446,10 @@ void CAN_INTErrWarningEn(CAN_TypeDef *CANx)
|
|||
CANx->IE |= (1 << CAN_IE_ERRWARN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTErrWarningDis()
|
||||
* 功能说明: TXERR/RXERR计数值达到Error Warning Limit时触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTErrWarningDis()
|
||||
* 功能说明: TXERR/RXERR计数值达到Error Warning Limit时触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -458,10 +458,10 @@ void CAN_INTErrWarningDis(CAN_TypeDef *CANx)
|
|||
CANx->IE &= ~(1 << CAN_IE_ERRWARN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXOverflowEn()
|
||||
* 功能说明: RX FIFO 溢出时触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXOverflowEn()
|
||||
* 功能说明: RX FIFO 溢出时触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -470,10 +470,10 @@ void CAN_INTRXOverflowEn(CAN_TypeDef *CANx)
|
|||
CANx->IE |= (1 << CAN_IE_RXOV_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXOverflowDis()
|
||||
* 功能说明: RX FIFO 溢出时触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXOverflowDis()
|
||||
* 功能说明: RX FIFO 溢出时触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -482,10 +482,10 @@ void CAN_INTRXOverflowDis(CAN_TypeDef *CANx)
|
|||
CANx->IE &= ~(1 << CAN_IE_RXOV_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXOverflowClear()
|
||||
* 功能说明: RX FIFO 溢出中断清除
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTRXOverflowClear()
|
||||
* 功能说明: RX FIFO 溢出中断清除
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -494,10 +494,10 @@ void CAN_INTRXOverflowClear(CAN_TypeDef *CANx)
|
|||
CANx->CMD = (1 << CAN_CMD_CLROV_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTWakeupEn()
|
||||
* 功能说明: 唤醒事件触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTWakeupEn()
|
||||
* 功能说明: 唤醒事件触发中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -506,10 +506,10 @@ void CAN_INTWakeupEn(CAN_TypeDef *CANx)
|
|||
CANx->IE |= (1 << CAN_IE_WKUP_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTWakeupDis()
|
||||
* 功能说明: 唤醒事件触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTWakeupDis()
|
||||
* 功能说明: 唤醒事件触发中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -518,10 +518,10 @@ void CAN_INTWakeupDis(CAN_TypeDef *CANx)
|
|||
CANx->IE &= ~(1 << CAN_IE_WKUP_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTErrPassiveEn()
|
||||
* 功能说明: TXERR/RXERR计数值达到127时中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTErrPassiveEn()
|
||||
* 功能说明: TXERR/RXERR计数值达到127时中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -530,10 +530,10 @@ void CAN_INTErrPassiveEn(CAN_TypeDef *CANx)
|
|||
CANx->IE |= (1 << CAN_IE_ERRPASS_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTErrPassiveDis()
|
||||
* 功能说明: TXERR/RXERR计数值达到127时中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTErrPassiveDis()
|
||||
* 功能说明: TXERR/RXERR计数值达到127时中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -542,10 +542,10 @@ void CAN_INTErrPassiveDis(CAN_TypeDef *CANx)
|
|||
CANx->IE &= ~(1 << CAN_IE_ERRPASS_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTArbitrLostEn()
|
||||
* 功能说明: 仲裁失败中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTArbitrLostEn()
|
||||
* 功能说明: 仲裁失败中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -554,10 +554,10 @@ void CAN_INTArbitrLostEn(CAN_TypeDef *CANx)
|
|||
CANx->IE |= (1 << CAN_IE_ARBLOST_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTArbitrLostDis()
|
||||
* 功能说明: 仲裁失败中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTArbitrLostDis()
|
||||
* 功能说明: 仲裁失败中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -566,10 +566,10 @@ void CAN_INTArbitrLostDis(CAN_TypeDef *CANx)
|
|||
CANx->IE &= ~(1 << CAN_IE_ARBLOST_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTBusErrorEn()
|
||||
* 功能说明: 总线错误中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTBusErrorEn()
|
||||
* 功能说明: 总线错误中断使能
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -578,10 +578,10 @@ void CAN_INTBusErrorEn(CAN_TypeDef *CANx)
|
|||
CANx->IE |= (1 << CAN_IE_BUSERR_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTBusErrorDis()
|
||||
* 功能说明: 总线错误中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTBusErrorDis()
|
||||
* 功能说明: 总线错误中断禁止
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -590,11 +590,11 @@ void CAN_INTBusErrorDis(CAN_TypeDef *CANx)
|
|||
CANx->IE &= ~(1 << CAN_IE_BUSERR_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTStat()
|
||||
* 功能说明: 查询中断状态
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 当前中断状态
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CAN_INTStat()
|
||||
* 功能说明: 查询中断状态
|
||||
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
|
||||
* 输 出: uint32_t 当前中断状态
|
||||
* 注意事项: CANx->IF读取清零,因此在中断ISR中只能读取一次,不能多次读取
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t CAN_INTStat(CAN_TypeDef *CANx)
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_crc.c
|
||||
* 功能说明: SWM320单片机的CRC模块驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 功能说明: SWM320单片机的CRC模块驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -21,14 +21,14 @@
|
|||
#include "SWM320.h"
|
||||
#include "SWM320_crc.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CRC_Init()
|
||||
* 功能说明: CRC 初始化
|
||||
* 输 入: CRC_TypeDef * CRCx 指定要被设置的CRC接口,有效值包括CRC
|
||||
* uint32_t mode 工作模式,有效值有:CRC32_IN32、CRC32_IN16、CRC32_IN8、CRC16_IN16、CRC16_IN8
|
||||
* uint32_t out_not 输出结果是否取反
|
||||
* uint32_t out_rev 输出结果是否翻转
|
||||
* uint32_t ini_val CRC初始值
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CRC_Init()
|
||||
* 功能说明: CRC 初始化
|
||||
* 输 入: CRC_TypeDef * CRCx 指定要被设置的CRC接口,有效值包括CRC
|
||||
* uint32_t mode 工作模式,有效值有:CRC32_IN32、CRC32_IN16、CRC32_IN8、CRC16_IN16、CRC16_IN8
|
||||
* uint32_t out_not 输出结果是否取反
|
||||
* uint32_t out_rev 输出结果是否翻转
|
||||
* uint32_t ini_val CRC初始值
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
|
||||
void CRC_Init(CRC_TypeDef *CRCx, uint32_t mode, uint32_t out_not, uint32_t out_rev, uint32_t ini_val);
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CRC_Write()
|
||||
* 功能说明: CRC写入数据
|
||||
* 输 入: uint32_t data 要写入的数据
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CRC_Write()
|
||||
* 功能说明: CRC写入数据
|
||||
* 输 入: uint32_t data 要写入的数据
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -21,11 +21,11 @@ static __INLINE void CRC_Write(uint32_t data)
|
|||
CRC->DATAIN = data;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CRC_Result()
|
||||
* 功能说明: 获取CRC计算结果
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: CRC_Result()
|
||||
* 功能说明: 获取CRC计算结果
|
||||
* 输 入: 无
|
||||
* 输 出: uint32_t CRC 计算结果
|
||||
* 输 出: uint32_t CRC 计算结果
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
static __INLINE uint32_t CRC_Result(void)
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_dma.c
|
||||
* 功能说明: SWM320单片机的DMA功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 功能说明: SWM320单片机的DMA功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -21,16 +21,16 @@
|
|||
#include "SWM320.h"
|
||||
#include "SWM320_dma.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: DMA_CHM_Config()
|
||||
* 功能说明: DMA通道配置,用于存储器间(如Flash和RAM间)搬运数据
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* uint32_t src_addr 源地址,必须字对齐,即地址的最低2位必须是00
|
||||
* uint32_t src_addr_incr 0 固定地址 1 地址递增
|
||||
* uint32_t dst_addr 目的地址,必须字对齐,即地址的最低2位必须是00
|
||||
* uint32_t dst_addr_incr 0 固定地址 1 地址递增
|
||||
* uint32_t num_word 要搬运的数据字数,最大1024
|
||||
* uint32_t int_en 中断使能,1 数据搬运完成后产生中断 0 数据搬运完成后不产生中断
|
||||
* 功能说明: DMA通道配置,用于存储器间(如Flash和RAM间)搬运数据
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* uint32_t src_addr 源地址,必须字对齐,即地址的最低2位必须是00
|
||||
* uint32_t src_addr_incr 0 固定地址 1 地址递增
|
||||
* uint32_t dst_addr 目的地址,必须字对齐,即地址的最低2位必须是00
|
||||
* uint32_t dst_addr_incr 0 固定地址 1 地址递增
|
||||
* uint32_t num_word 要搬运的数据字数,最大1024
|
||||
* uint32_t int_en 中断使能,1 数据搬运完成后产生中断 0 数据搬运完成后不产生中断
|
||||
* 输 出: 无
|
||||
* 注意事项: 搬运数据量以字为单元,不是字节
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -67,10 +67,10 @@ void DMA_CHM_Config(uint32_t chn, uint32_t src_addr, uint32_t src_addr_incr, uin
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: DMA_CH_Open()
|
||||
* 功能说明: DMA通道打开
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 功能说明: DMA通道打开
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -79,10 +79,10 @@ void DMA_CH_Open(uint32_t chn)
|
|||
DMA->CH[chn].CR |= (1 << DMA_CR_TXEN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: DMA_CH_Close()
|
||||
* 功能说明: DMA通道关闭
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 功能说明: DMA通道关闭
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -91,10 +91,10 @@ void DMA_CH_Close(uint32_t chn)
|
|||
DMA->CH[chn].CR &= ~(1 << DMA_CR_TXEN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: DMA_CH_INTEn()
|
||||
* 功能说明: DMA中断使能,数据搬运完成后触发中断
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 功能说明: DMA中断使能,数据搬运完成后触发中断
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -103,10 +103,10 @@ void DMA_CH_INTEn(uint32_t chn)
|
|||
DMA->IM &= ~(1 << chn);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: DMA_CH_INTDis()
|
||||
* 功能说明: DMA中断禁止,数据搬运完成后不触发中断
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 功能说明: DMA中断禁止,数据搬运完成后不触发中断
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -115,10 +115,10 @@ void DMA_CH_INTDis(uint32_t chn)
|
|||
DMA->IM |= (1 << chn);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: DMA_CH_INTClr()
|
||||
* 功能说明: DMA中断标志清除
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 功能说明: DMA中断标志清除
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -127,11 +127,11 @@ void DMA_CH_INTClr(uint32_t chn)
|
|||
DMA->IF = (1 << chn);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: DMA_CH_INTStat()
|
||||
* 功能说明: DMA中断状态查询
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 输 出: uint32_t 1 数据搬运完成 0 数据搬运未完成
|
||||
* 功能说明: DMA中断状态查询
|
||||
* 输 入: uint32_t chn 指定要配置的通道,有效值有DMA_CH0、DMA_CH1、DMA_CH2
|
||||
* 输 出: uint32_t 1 数据搬运完成 0 数据搬运未完成
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t DMA_CH_INTStat(uint32_t chn)
|
||||
|
|
|
@ -1,34 +1,34 @@
|
|||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_exti.c
|
||||
* 功能说明: SWM320单片机的外部中断功能驱动库
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_exti.c
|
||||
* 功能说明: SWM320单片机的外部中断功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_exti.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_Init()
|
||||
* 功能说明: 指定引脚外部中断初始化
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t mode 有效值有EXTI_FALL_EDGE、EXTI_RISE_EDGE、EXTI_BOTH_EDGE、EXTI_LOW_LEVEL、EXTI_HIGH_LEVEL
|
||||
* 功能说明: 指定引脚外部中断初始化
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t mode 有效值有EXTI_FALL_EDGE、EXTI_RISE_EDGE、EXTI_BOTH_EDGE、EXTI_LOW_LEVEL、EXTI_HIGH_LEVEL
|
||||
* 输 出: 无
|
||||
* 注意事项: 由于GPIOA、GPIOB、GPIOC、GPIOM的PIN0--7引脚即可以接入NVIC中的引脚中断(如GPIOA0_IRQn),也可以接入NVIC的组中断(GPIOA_IRQn),
|
||||
* 所以不在此函数中调用NVIC_EnableIRQ()使能NVIC中断,从而可以根据需要调用NVIC_EnableIRQ(GPIOA0_IRQn)和NVIC_EnableIRQ(GPIOA_IRQn)
|
||||
* 所以不在此函数中调用NVIC_EnableIRQ()使能NVIC中断,从而可以根据需要调用NVIC_EnableIRQ(GPIOA0_IRQn)和NVIC_EnableIRQ(GPIOA_IRQn)
|
||||
******************************************************************************************************************************************/
|
||||
void EXTI_Init(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t mode)
|
||||
{
|
||||
|
@ -65,11 +65,11 @@ void EXTI_Init(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t mode)
|
|||
GPIOx->INTCLR = (1 << n); //清除掉因为模式配置可能产生的中断
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_Open()
|
||||
* 功能说明: 指定引脚外部中断打开(即使能)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_Open()
|
||||
* 功能说明: 指定引脚外部中断打开(即使能)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -78,11 +78,11 @@ void EXTI_Open(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
GPIOx->INTEN |= (0x01 << n);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_Close()
|
||||
* 功能说明: 指定引脚外部中断关闭(即禁能)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_Close()
|
||||
* 功能说明: 指定引脚外部中断关闭(即禁能)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -91,12 +91,12 @@ void EXTI_Close(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
GPIOx->INTEN &= ~(0x01 << n);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_State()
|
||||
* 功能说明: 指定引脚是否触发了中断
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: uint32_t 1 此引脚触发了中断 0 此引脚未触发中断
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_State()
|
||||
* 功能说明: 指定引脚是否触发了中断
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: uint32_t 1 此引脚触发了中断 0 此引脚未触发中断
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t EXTI_State(GPIO_TypeDef *GPIOx, uint32_t n)
|
||||
|
@ -104,12 +104,12 @@ uint32_t EXTI_State(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
return (GPIOx->INTSTAT >> n) & 0x01;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_RawState()
|
||||
* 功能说明: 指定引脚是否满足过/了中断触发条件,当此中断关闭时可通过调用此函数以查询的方式检测引脚上是否满足过/了中断触发条件
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: uint32_t 1 此引脚满足过/了中断触发条件 0 此引脚未满足过/了中断触发条件
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_RawState()
|
||||
* 功能说明: 指定引脚是否满足过/了中断触发条件,当此中断关闭时可通过调用此函数以查询的方式检测引脚上是否满足过/了中断触发条件
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: uint32_t 1 此引脚满足过/了中断触发条件 0 此引脚未满足过/了中断触发条件
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t EXTI_RawState(GPIO_TypeDef *GPIOx, uint32_t n)
|
||||
|
@ -117,11 +117,11 @@ uint32_t EXTI_RawState(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
return (GPIOx->INTRAWSTAT >> n) & 0x01;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_Clear()
|
||||
* 功能说明: 指定引脚外部中断清除(即清除中断标志,以免再次进入此中断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: EXTI_Clear()
|
||||
* 功能说明: 指定引脚外部中断清除(即清除中断标志,以免再次进入此中断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定产生外部中断的GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定产生外部中断的GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: 无
|
||||
* 注意事项: 只能清除边沿触发中断的标志,电平触发中断的标志无法清除,只能在引脚电平不符合中断触发条件后硬件自动清除
|
||||
******************************************************************************************************************************************/
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_flash.c
|
||||
* 功能说明: 使用芯片的IAP功能将片上Flash模拟成EEPROM来保存数据,掉电后不丢失
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_flash.c
|
||||
* 功能说明: 使用芯片的IAP功能将片上Flash模拟成EEPROM来保存数据,掉电后不丢失
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_flash.h"
|
||||
|
@ -24,10 +24,10 @@ IAP_Flash_Param_t IAP_Flash_Param = (IAP_Flash_Param_t)0x11000681;
|
|||
IAP_Flash_Erase_t IAP_Flash_Erase = (IAP_Flash_Erase_t)0x11000781;
|
||||
IAP_Flash_Write_t IAP_Flash_Write = (IAP_Flash_Write_t)0x11000801;
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: FLASH_Erase()
|
||||
* 功能说明: 片内Flash擦除
|
||||
* 输 入: uint32_t addr 擦除地址,扇区大小为4K Byte
|
||||
* 功能说明: 片内Flash擦除
|
||||
* 输 入: uint32_t addr 擦除地址,扇区大小为4K Byte
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -42,12 +42,12 @@ void FLASH_Erase(uint32_t addr)
|
|||
__enable_irq();
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: FLASH_Write()
|
||||
* 功能说明: 片内Flash写入
|
||||
* 输 入: uint32_t addr 写入地址
|
||||
* uint32_t buff[] 要写入的数据
|
||||
* uint32_t count 要写入数据的个数,以字为单位,且必须是4的整数倍,即最少写入4个字
|
||||
* 功能说明: 片内Flash写入
|
||||
* 输 入: uint32_t addr 写入地址
|
||||
* uint32_t buff[] 要写入的数据
|
||||
* uint32_t count 要写入数据的个数,以字为单位,且必须是4的整数倍,即最少写入4个字
|
||||
* 输 出: 无
|
||||
* 注意事项: 写入数据个数必须是4的整数倍,即最少写入4个字
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -62,10 +62,10 @@ void FLASH_Write(uint32_t addr, uint32_t buff[], uint32_t count)
|
|||
__enable_irq();
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: Flash_Param_at_xMHz()
|
||||
* 功能说明: 将Flash参数设置成xMHz主频下运行时所需的参数
|
||||
* 输 入: uint32_t x 可取值
|
||||
* 功能说明: 将Flash参数设置成xMHz主频下运行时所需的参数
|
||||
* 输 入: uint32_t x 可取值
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
|
|
@ -1,34 +1,34 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_gpio.c
|
||||
* 功能说明: SWM320单片机的通用输入输出功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 功能说明: SWM320单片机的通用输入输出功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_gpio.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_Init()
|
||||
* 功能说明: 引脚初始化,包含引脚方向、上拉电阻、下拉电阻
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t dir 引脚方向,0 输入 1 输出
|
||||
* uint32_t pull_up 上拉电阻,0 关闭上拉 1 开启上拉
|
||||
* uint32_t pull_down 下拉电阻,0 关闭下拉 1 开启下拉
|
||||
* 功能说明: 引脚初始化,包含引脚方向、上拉电阻、下拉电阻
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t dir 引脚方向,0 输入 1 输出
|
||||
* uint32_t pull_up 上拉电阻,0 关闭上拉 1 开启上拉
|
||||
* uint32_t pull_down 下拉电阻,0 关闭下拉 1 开启下拉
|
||||
* 输 出: 无
|
||||
* 注意事项: GPIOA、GPIOC、GPIOM、GPIOP只有上拉,GPIOB、GPION只有下拉(PN0、PN1、PN2三个引脚有上拉没下拉)
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -152,11 +152,11 @@ void GPIO_Init(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t dir, uint32_t pull_up,
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_SetBit()
|
||||
* 功能说明: 将参数指定的引脚电平置高
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 功能说明: 将参数指定的引脚电平置高
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -165,11 +165,11 @@ void GPIO_SetBit(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
GPIOx->DATA |= (0x01 << n);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_ClrBit()
|
||||
* 功能说明: 将参数指定的引脚电平置低
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_ClrBit()
|
||||
* 功能说明: 将参数指定的引脚电平置低
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -178,11 +178,11 @@ void GPIO_ClrBit(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
GPIOx->DATA &= ~(0x01 << n);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_InvBit()
|
||||
* 功能说明: 将参数指定的引脚电平反转
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 功能说明: 将参数指定的引脚电平反转
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -191,12 +191,12 @@ void GPIO_InvBit(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
GPIOx->DATA ^= (0x01 << n);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_GetBit()
|
||||
* 功能说明: 读取参数指定的引脚的电平状态
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: 参数指定的引脚的电平状态 0 低电平 1 高电平
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_GetBit()
|
||||
* 功能说明: 读取参数指定的引脚的电平状态
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* 输 出: 参数指定的引脚的电平状态 0 低电平 1 高电平
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t GPIO_GetBit(GPIO_TypeDef *GPIOx, uint32_t n)
|
||||
|
@ -204,12 +204,12 @@ uint32_t GPIO_GetBit(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
return ((GPIOx->DATA >> n) & 0x01);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_SetBits()
|
||||
* 功能说明: 将参数指定的从n开始的w位连续引脚的电平置高
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t w 指定要将引脚电平置高的引脚的个数
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t w 指定要将引脚电平置高的引脚的个数
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -222,12 +222,12 @@ void GPIO_SetBits(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t w)
|
|||
GPIOx->DATA |= (bits << n);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_ClrBits()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_ClrBits()
|
||||
* 功能说明: 将参数指定的从n开始的w位连续引脚的电平置低
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t w 指定要将引脚电平置低的引脚的个数
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t w 指定要将引脚电平置低的引脚的个数
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -240,12 +240,12 @@ void GPIO_ClrBits(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t w)
|
|||
GPIOx->DATA &= ~(bits << n);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_InvBits()
|
||||
* 功能说明: 将参数指定的从n开始的w位连续引脚的电平反转
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t w 指定要将引脚电平反转的引脚的个数
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t w 指定要将引脚电平反转的引脚的个数
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -258,14 +258,14 @@ void GPIO_InvBits(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t w)
|
|||
GPIOx->DATA ^= (bits << n);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_GetBits()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_GetBits()
|
||||
* 功能说明: 读取参数指定的从n开始的w位连续引脚的电平状态
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t w 指定要将引脚电平置高的引脚的个数
|
||||
* 输 出: 参数指定的从n开始的w位连续引脚的电平状态 0 低电平 1 高电平
|
||||
* 返回值的第0位表示引脚n的电平状态、返回值的第1位表示引脚n+1的电平状态... ...返回值的第w位表示引脚n+w的电平状态
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOM、GPION、GPIOP
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t w 指定要将引脚电平置高的引脚的个数
|
||||
* 输 出: 参数指定的从n开始的w位连续引脚的电平状态 0 低电平 1 高电平
|
||||
* 返回值的第0位表示引脚n的电平状态、返回值的第1位表示引脚n+1的电平状态... ...返回值的第w位表示引脚n+w的电平状态
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t GPIO_GetBits(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t w)
|
||||
|
@ -277,11 +277,11 @@ uint32_t GPIO_GetBits(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t w)
|
|||
return ((GPIOx->DATA >> n) & bits);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_AtomicSetBit()
|
||||
* 功能说明: 将参数指定的引脚电平置高,确保引脚”读-改-写“操作的原子性(不被中断ISR打断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* 功能说明: 将参数指定的引脚电平置高,确保引脚”读-改-写“操作的原子性(不被中断ISR打断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* 输 出: 无
|
||||
* 注意事项: 当GPIOx的16个引脚中,有些在主循环中操作,有些在中断ISR中操作时,GPIOx的引脚必须都用GPIO_Atomic类型函数操作
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -290,11 +290,11 @@ void GPIO_AtomicSetBit(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
*((volatile uint32_t *)(0x42000000 + ((uint32_t)&GPIOx->DATA - 0x40000000) * 32 + n * 4)) = 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_AtomicClrBit()
|
||||
* 功能说明: 将参数指定的引脚电平置低,确保引脚”读-改-写“操作的原子性(不被中断ISR打断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_AtomicClrBit()
|
||||
* 功能说明: 将参数指定的引脚电平置低,确保引脚”读-改-写“操作的原子性(不被中断ISR打断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* 输 出: 无
|
||||
* 注意事项: 当GPIOx的16个引脚中,有些在主循环中操作,有些在中断ISR中操作时,GPIOx的引脚必须都用GPIO_Atomic类型函数操作
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -303,11 +303,11 @@ void GPIO_AtomicClrBit(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
*((volatile uint32_t *)(0x42000000 + ((uint32_t)&GPIOx->DATA - 0x40000000) * 32 + n * 4)) = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_AtomicInvBit()
|
||||
* 功能说明: 将参数指定的引脚电平反转,确保引脚”读-改-写“操作的原子性(不被中断ISR打断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* 功能说明: 将参数指定的引脚电平反转,确保引脚”读-改-写“操作的原子性(不被中断ISR打断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* 输 出: 无
|
||||
* 注意事项: 当GPIOx的16个引脚中,有些在主循环中操作,有些在中断ISR中操作时,GPIOx的引脚必须都用GPIO_Atomic类型函数操作
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -316,12 +316,12 @@ void GPIO_AtomicInvBit(GPIO_TypeDef *GPIOx, uint32_t n)
|
|||
*((volatile uint32_t *)(0x42000000 + ((uint32_t)&GPIOx->DATA - 0x40000000) * 32 + n * 4)) = 1 - *((volatile uint32_t *)(0x42000000 + ((uint32_t)&GPIOx->DATA - 0x40000000) * 32 + n * 4));
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_AtomicSetBits()
|
||||
* 功能说明: 将参数指定的从n开始的w位连续引脚的电平置高,确保引脚”读-改-写“操作的原子性(不被中断ISR打断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* uint32_t w 指定要将引脚电平置高的引脚的个数
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* uint32_t w 指定要将引脚电平置高的引脚的个数
|
||||
* 输 出: 无
|
||||
* 注意事项: 当GPIOx的16个引脚中,有些在主循环中操作,有些在中断ISR中操作时,GPIOx的引脚必须都用GPIO_Atomic类型函数操作
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -336,12 +336,12 @@ void GPIO_AtomicSetBits(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t w)
|
|||
__enable_irq();
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_AtomicClrBits()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_AtomicClrBits()
|
||||
* 功能说明: 将参数指定的从n开始的w位连续引脚的电平置低,确保引脚”读-改-写“操作的原子性(不被中断ISR打断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* uint32_t w 指定要将引脚电平置低的引脚的个数
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* uint32_t w 指定要将引脚电平置低的引脚的个数
|
||||
* 输 出: 无
|
||||
* 注意事项: 当GPIOx的16个引脚中,有些在主循环中操作,有些在中断ISR中操作时,GPIOx的引脚必须都用GPIO_Atomic类型函数操作
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -356,12 +356,12 @@ void GPIO_AtomicClrBits(GPIO_TypeDef *GPIOx, uint32_t n, uint32_t w)
|
|||
__enable_irq();
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: GPIO_AtomicInvBits()
|
||||
* 功能说明: 将参数指定的从n开始的w位连续引脚的电平反转,确保引脚”读-改-写“操作的原子性(不被中断ISR打断)
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* uint32_t w 指定要将引脚电平反转的引脚的个数
|
||||
* 输 入: GPIO_TypeDef * GPIOx 指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD
|
||||
* uint32_t n 指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
|
||||
* uint32_t w 指定要将引脚电平反转的引脚的个数
|
||||
* 输 出: 无
|
||||
* 注意事项: 当GPIOx的16个引脚中,有些在主循环中操作,有些在中断ISR中操作时,GPIOx的引脚必须都用GPIO_Atomic类型函数操作
|
||||
******************************************************************************************************************************************/
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_i2c.c
|
||||
* 功能说明: SWM320单片机的I2C串行接口功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_i2c.c
|
||||
* 功能说明: SWM320单片机的I2C串行接口功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIES AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIEE. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIES ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIES AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIEE. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIES ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -21,11 +21,11 @@
|
|||
#include "SWM320.h"
|
||||
#include "SWM320_i2c.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Init()
|
||||
* 功能说明: I2C初始化
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* I2C_InitStructure * initStruct 包含I2C相关设定值的结构体
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Init()
|
||||
* 功能说明: I2C初始化
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* I2C_InitStructure * initStruct 包含I2C相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 模块只能工作于主机模式
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -125,10 +125,10 @@ void I2C_Init(I2C_TypeDef *I2Cx, I2C_InitStructure *initStruct)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Open()
|
||||
* 功能说明: I2C打开,允许收发
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Open()
|
||||
* 功能说明: I2C打开,允许收发
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -137,10 +137,10 @@ void I2C_Open(I2C_TypeDef *I2Cx)
|
|||
I2Cx->CTRL |= (0x01 << I2C_CTRL_EN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Close()
|
||||
* 功能说明: I2C关闭,禁止收发
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Close()
|
||||
* 功能说明: I2C关闭,禁止收发
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -149,12 +149,12 @@ void I2C_Close(I2C_TypeDef *I2Cx)
|
|||
I2Cx->CTRL &= ~I2C_CTRL_EN_Msk;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Start()
|
||||
* 功能说明: 产生起始信号并发送设备地址
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* uint8_t addr 设备地址
|
||||
* 输 出: uint8_t 1 接收到ACK 0 接收到NACK
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Start()
|
||||
* 功能说明: 产生起始信号并发送设备地址
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* uint8_t addr 设备地址
|
||||
* 输 出: uint8_t 1 接收到ACK 0 接收到NACK
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint8_t I2C_Start(I2C_TypeDef *I2Cx, uint8_t addr)
|
||||
|
@ -168,10 +168,10 @@ uint8_t I2C_Start(I2C_TypeDef *I2Cx, uint8_t addr)
|
|||
return (I2Cx->MSTCMD & I2C_MSTCMD_RXACK_Msk) ? 0 : 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Stop()
|
||||
* 功能说明: 产生停止信号
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Stop()
|
||||
* 功能说明: 产生停止信号
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -182,12 +182,12 @@ void I2C_Stop(I2C_TypeDef *I2Cx)
|
|||
__NOP(); //等待发送完成
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Write()
|
||||
* 功能说明: 写入一个数据
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* uint8_t data 要写的数据
|
||||
* 输 出: uint8_t 1 接收到ACK 0 接收到NACK
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Write()
|
||||
* 功能说明: 写入一个数据
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* uint8_t data 要写的数据
|
||||
* 输 出: uint8_t 1 接收到ACK 0 接收到NACK
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint8_t I2C_Write(I2C_TypeDef *I2Cx, uint8_t data)
|
||||
|
@ -200,12 +200,12 @@ uint8_t I2C_Write(I2C_TypeDef *I2Cx, uint8_t data)
|
|||
return (I2Cx->MSTCMD & I2C_MSTCMD_RXACK_Msk) ? 0 : 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Read()
|
||||
* 功能说明: 读取一个数据
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* uint8_t ack 1 发送ACK 0 发送NACK
|
||||
* 输 出: uint8_t 读取到的数据
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: I2C_Read()
|
||||
* 功能说明: 读取一个数据
|
||||
* 输 入: I2C_TypeDef * I2Cx 指定要被设置的I2C,有效值包括I2C0、I2C1
|
||||
* uint8_t ack 1 发送ACK 0 发送NACK
|
||||
* 输 出: uint8_t 读取到的数据
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint8_t I2C_Read(I2C_TypeDef *I2Cx, uint8_t ack)
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_lcd.c
|
||||
* 功能说明: SWM320单片机的LCD功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 功能说明: SWM320单片机的LCD功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -23,11 +23,11 @@
|
|||
|
||||
#include <string.h>
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: LCD_Init()
|
||||
* 功能说明: LCD初始化
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* LCD_InitStructure * initStruct 包含LCD相关设定值的结构体
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: LCD_Init()
|
||||
* 功能说明: LCD初始化
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* LCD_InitStructure * initStruct 包含LCD相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -74,10 +74,10 @@ void LCD_Init(LCD_TypeDef *LCDx, LCD_InitStructure *initStruct)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: LCD_Start()
|
||||
* 功能说明: 启动一次数据传输
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 功能说明: 启动一次数据传输
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -86,11 +86,11 @@ void LCD_Start(LCD_TypeDef *LCDx)
|
|||
LCDx->START |= (1 << LCD_START_GO_Pos) | (1 << LCD_START_BURST_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: LCD_IsBusy()
|
||||
* 功能说明: 是否正在进行数据传输
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 输 出: uint32_t 1 正在传输数据 0 数据传输已完成
|
||||
* 功能说明: 是否正在进行数据传输
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 输 出: uint32_t 1 正在传输数据 0 数据传输已完成
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t LCD_IsBusy(LCD_TypeDef *LCDx)
|
||||
|
@ -98,10 +98,10 @@ uint32_t LCD_IsBusy(LCD_TypeDef *LCDx)
|
|||
return (LCDx->START & LCD_START_GO_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: LCD_INTEn()
|
||||
* 功能说明: LCD中断使能,完成指定长度的数据传输时触发中断
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 功能说明: LCD中断使能,完成指定长度的数据传输时触发中断
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -110,10 +110,10 @@ void LCD_INTEn(LCD_TypeDef *LCDx)
|
|||
LCDx->IM = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: LCD_INTDis()
|
||||
* 功能说明: LCD中断禁止,完成指定长度的数据传输时不触发中断
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 功能说明: LCD中断禁止,完成指定长度的数据传输时不触发中断
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -122,10 +122,10 @@ void LCD_INTDis(LCD_TypeDef *LCDx)
|
|||
LCDx->IM = 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: LCD_INTClr()
|
||||
* 功能说明: LCD中断标志清除
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 功能说明: LCD中断标志清除
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -134,11 +134,11 @@ void LCD_INTClr(LCD_TypeDef *LCDx)
|
|||
LCDx->IF = 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: LCD_INTStat()
|
||||
* 功能说明: LCD中断状态查询
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 输 出: uint32_t 1 完成指定长度的数据传输 0 未完成指定长度的数据传输
|
||||
* 功能说明: LCD中断状态查询
|
||||
* 输 入: LCD_TypeDef * LCDx 指定要被设置的LCD,有效值包括LCD
|
||||
* 输 出: uint32_t 1 完成指定长度的数据传输 0 未完成指定长度的数据传输
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t LCD_INTStat(LCD_TypeDef *LCDx)
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_norflash.c
|
||||
* 功能说明: SWM320单片机的NOR Flash驱动程序
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 功能说明: SWM320单片机的NOR Flash驱动程序
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_norflash.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_Init()
|
||||
* 功能说明: NOR Flash控制器初始化
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_Init()
|
||||
* 功能说明: NOR Flash控制器初始化
|
||||
* 输 入: NORFL_InitStructure * initStruct 包含NOR Flash控制器相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
|
@ -64,11 +64,11 @@ void NORFL_Init(NORFL_InitStructure *initStruct)
|
|||
NORFLC->IM |= (1 << NORFLC_IM_TIMEOUT_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_ChipErase()
|
||||
* 功能说明: NOR Flash整片擦除
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_ChipErase()
|
||||
* 功能说明: NOR Flash整片擦除
|
||||
* 输 入: 无
|
||||
* 输 出: uint32_t 0 擦除成功 1 擦除超时
|
||||
* 输 出: uint32_t 0 擦除成功 1 擦除超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t NORFL_ChipErase(void)
|
||||
|
@ -91,11 +91,11 @@ uint32_t NORFL_ChipErase(void)
|
|||
return res;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_SectorErase()
|
||||
* 功能说明: NOR Flash扇区擦除
|
||||
* 输 入: uint32_t addr 要擦除扇区的起始地址
|
||||
* 输 出: uint32_t 0 擦除成功 1 擦除超时
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_SectorErase()
|
||||
* 功能说明: NOR Flash扇区擦除
|
||||
* 输 入: uint32_t addr 要擦除扇区的起始地址
|
||||
* 输 出: uint32_t 0 擦除成功 1 擦除超时
|
||||
* 注意事项: MX29LV128DB 前8扇区为8K、后255扇区为64K MX29LV128DT 前255扇区为64K、后8扇区为8K
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t NORFL_SectorErase(uint32_t addr)
|
||||
|
@ -119,12 +119,12 @@ uint32_t NORFL_SectorErase(uint32_t addr)
|
|||
return res;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_Write()
|
||||
* 功能说明: NOR Flash写
|
||||
* 输 入: uint32_t addr 数据要写入的地址
|
||||
* uint32_t data 要写入的数据
|
||||
* 输 出: uint32_t 0 写入成功 1 写入超时
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_Write()
|
||||
* 功能说明: NOR Flash写
|
||||
* 输 入: uint32_t addr 数据要写入的地址
|
||||
* uint32_t data 要写入的数据
|
||||
* 输 出: uint32_t 0 写入成功 1 写入超时
|
||||
* 注意事项: 硬件连接,数据线为16位时,半字写入;数据线为8位时,字节写入
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t NORFL_Write(uint32_t addr, uint32_t data)
|
||||
|
@ -148,11 +148,11 @@ uint32_t NORFL_Write(uint32_t addr, uint32_t data)
|
|||
return res;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_Read()
|
||||
* 功能说明: NOR Flash读
|
||||
* 输 入: uint32_t addr 数据要读出的地址
|
||||
* 输 出: uint32_t 读出的数据
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_Read()
|
||||
* 功能说明: NOR Flash读
|
||||
* 输 入: uint32_t addr 数据要读出的地址
|
||||
* 输 出: uint32_t 读出的数据
|
||||
* 注意事项: 硬件连接,数据线为16位时,半字读出;数据线为8位时,字节读出
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t NORFL_Read(uint32_t addr)
|
||||
|
@ -163,11 +163,11 @@ uint32_t NORFL_Read(uint32_t addr)
|
|||
return (NORFLC->CMD & NORFLC_CMD_DATA_Msk);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_ReadID()
|
||||
* 功能说明: NOR Flash读ID
|
||||
* 输 入: uint32_t id_addr ID地址,此参数是芯片相关的,每种芯片都不同
|
||||
* 输 出: uint16_t 读取到的ID
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: NORFL_ReadID()
|
||||
* 功能说明: NOR Flash读ID
|
||||
* 输 入: uint32_t id_addr ID地址,此参数是芯片相关的,每种芯片都不同
|
||||
* 输 出: uint16_t 读取到的ID
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint16_t NORFL_ReadID(uint32_t id_addr)
|
||||
|
|
|
@ -1,36 +1,36 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_port.c
|
||||
* 功能说明: SWM320单片机的端口引脚功能选择库函数
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 功能说明: SWM320单片机的端口引脚功能选择库函数
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_port.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PORT_Init()
|
||||
* 功能说明: 端口引脚功能选择,可用的功能见"SWM320_port.h"文件
|
||||
* 输 入: uint32_t PORTx 指定PORT端口,有效值包括PORTA、PORTB、PORTC、PORTM、PORTN、PORTP
|
||||
* uint32_t n 指定PORT引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t func 指定端口引脚要设定的功能,其可取值见"SWM320_port.h"文件
|
||||
* uint32_t digit_in_en 数字输入使能
|
||||
* 功能说明: 端口引脚功能选择,可用的功能见"SWM320_port.h"文件
|
||||
* 输 入: uint32_t PORTx 指定PORT端口,有效值包括PORTA、PORTB、PORTC、PORTM、PORTN、PORTP
|
||||
* uint32_t n 指定PORT引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
|
||||
* uint32_t func 指定端口引脚要设定的功能,其可取值见"SWM320_port.h"文件
|
||||
* uint32_t digit_in_en 数字输入使能
|
||||
* 输 出: 无
|
||||
* 注意事项: 当引脚标号n为偶数时,func取值只能是FUNMUX0开头的,如FUNMUX0_UART0_RXD
|
||||
* 当引脚标号n为奇数时,func取值只能是FUNMUX1开头的,如FUNMUX1_UART0_TXD
|
||||
* 当引脚标号n为奇数时,func取值只能是FUNMUX1开头的,如FUNMUX1_UART0_TXD
|
||||
******************************************************************************************************************************************/
|
||||
void PORT_Init(uint32_t PORTx, uint32_t n, uint32_t func, uint32_t digit_in_en)
|
||||
{
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_pwm.c
|
||||
* 功能说明: SWM320单片机的PWM功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_pwm.c
|
||||
* 功能说明: SWM320单片机的PWM功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_pwm.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_Init()
|
||||
* 功能说明: PWM初始化
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* PWM_InitStructure * initStruct 包含PWM相关设定值的结构体
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_Init()
|
||||
* 功能说明: PWM初始化
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* PWM_InitStructure * initStruct 包含PWM相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -98,12 +98,12 @@ void PWM_Init(PWM_TypeDef *PWMx, PWM_InitStructure *initStruct)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_Start()
|
||||
* 功能说明: 启动PWM,开始PWM输出
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chA 0 通道A不启动 1 通道A启动
|
||||
* uint32_t chB 0 通道B不启动 1 通道B启动
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_Start()
|
||||
* 功能说明: 启动PWM,开始PWM输出
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chA 0 通道A不启动 1 通道A启动
|
||||
* uint32_t chB 0 通道B不启动 1 通道B启动
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -137,12 +137,12 @@ void PWM_Start(PWM_TypeDef *PWMx, uint32_t chA, uint32_t chB)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_Stop()
|
||||
* 功能说明: 关闭PWM,停止PWM输出
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chA 0 通道A不关闭 1 通道A关闭
|
||||
* uint32_t chB 0 通道B不关闭 1 通道B关闭
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_Stop()
|
||||
* 功能说明: 关闭PWM,停止PWM输出
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chA 0 通道A不关闭 1 通道A关闭
|
||||
* uint32_t chB 0 通道B不关闭 1 通道B关闭
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -176,12 +176,12 @@ void PWM_Stop(PWM_TypeDef *PWMx, uint32_t chA, uint32_t chB)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_SetCycle()
|
||||
* 功能说明: 设置周期
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* uint16_t cycle 要设定的周期值
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_SetCycle()
|
||||
* 功能说明: 设置周期
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* uint16_t cycle 要设定的周期值
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -193,12 +193,12 @@ void PWM_SetCycle(PWM_TypeDef *PWMx, uint32_t chn, uint16_t cycle)
|
|||
PWMx->PERB = cycle;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_GetCycle()
|
||||
* 功能说明: 获取周期
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要查询哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint16_t 获取到的周期值
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_GetCycle()
|
||||
* 功能说明: 获取周期
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要查询哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint16_t 获取到的周期值
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint16_t PWM_GetCycle(PWM_TypeDef *PWMx, uint32_t chn)
|
||||
|
@ -213,12 +213,12 @@ uint16_t PWM_GetCycle(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
return cycle;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_SetHDuty()
|
||||
* 功能说明: 设置高电平时长
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* uint16_t hduty 要设定的高电平时长
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_SetHDuty()
|
||||
* 功能说明: 设置高电平时长
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* uint16_t hduty 要设定的高电平时长
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -230,12 +230,12 @@ void PWM_SetHDuty(PWM_TypeDef *PWMx, uint32_t chn, uint16_t hduty)
|
|||
PWMx->HIGHB = hduty;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_GetHDuty()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_GetHDuty()
|
||||
* 功能说明: 获取高电平时长
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要查询哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint16_t 获取到的高电平时长
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要查询哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint16_t 获取到的高电平时长
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint16_t PWM_GetHDuty(PWM_TypeDef *PWMx, uint32_t chn)
|
||||
|
@ -250,12 +250,12 @@ uint16_t PWM_GetHDuty(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
return hduty;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_SetDeadzone()
|
||||
* 功能说明: 设置死区时长
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* uint8_t deadzone 要设定的死区时长
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_SetDeadzone()
|
||||
* 功能说明: 设置死区时长
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* uint8_t deadzone 要设定的死区时长
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -267,12 +267,12 @@ void PWM_SetDeadzone(PWM_TypeDef *PWMx, uint32_t chn, uint8_t deadzone)
|
|||
PWMx->DZB = deadzone;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_GetDeadzone()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_GetDeadzone()
|
||||
* 功能说明: 获取死区时长
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要查询哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint8_t 获取到的死区时长
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要查询哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint8_t 获取到的死区时长
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint8_t PWM_GetDeadzone(PWM_TypeDef *PWMx, uint32_t chn)
|
||||
|
@ -287,11 +287,11 @@ uint8_t PWM_GetDeadzone(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
return deadzone;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntNCycleEn()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntNCycleEn()
|
||||
* 功能说明: 新周期开始中断使能
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -343,11 +343,11 @@ void PWM_IntNCycleEn(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntNCycleDis()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntNCycleDis()
|
||||
* 功能说明: 新周期开始中断禁能
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -399,11 +399,11 @@ void PWM_IntNCycleDis(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntNCycleClr()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntNCycleClr()
|
||||
* 功能说明: 新周期开始中断标志清除
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -455,12 +455,12 @@ void PWM_IntNCycleClr(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntNCycleStat()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntNCycleStat()
|
||||
* 功能说明: 新周期开始中断是否发生
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint32_t 1 新周期开始中断已发生 0 新周期开始中断未发生
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint32_t 1 新周期开始中断已发生 0 新周期开始中断未发生
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t PWM_IntNCycleStat(PWM_TypeDef *PWMx, uint32_t chn)
|
||||
|
@ -515,11 +515,11 @@ uint32_t PWM_IntNCycleStat(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
return int_stat;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntHEndEn()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntHEndEn()
|
||||
* 功能说明: 高电平结束中断使能
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -571,11 +571,11 @@ void PWM_IntHEndEn(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntHEndDis()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntHEndDis()
|
||||
* 功能说明: 高电平结束中断禁能
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -627,11 +627,11 @@ void PWM_IntHEndDis(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntHEndClr()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntHEndClr()
|
||||
* 功能说明: 高电平结束中断标志清除
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -683,12 +683,12 @@ void PWM_IntHEndClr(PWM_TypeDef *PWMx, uint32_t chn)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntHEndStat()
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: PWM_IntHEndStat()
|
||||
* 功能说明: 高电平结束中断是否发生
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint32_t 1 高电平结束中断已发生 0 高电平结束中断未发生
|
||||
* 输 入: PWM_TypeDef * PWMx 指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
|
||||
* uint32_t chn 选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
|
||||
* 输 出: uint32_t 1 高电平结束中断已发生 0 高电平结束中断未发生
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t PWM_IntHEndStat(PWM_TypeDef *PWMx, uint32_t chn)
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_rtc.c
|
||||
* 功能说明: SWM320单片机的RTC驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 功能说明: SWM320单片机的RTC驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -22,11 +22,11 @@
|
|||
#include "SWM320_rtc.h"
|
||||
|
||||
static uint32_t calcWeekDay(uint32_t year, uint32_t month, uint32_t date);
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_Init()
|
||||
* 功能说明: RTC初始化
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,有效值包括RTC
|
||||
* RTC_InitStructure * initStruct 包含RTC相关设定值的结构体
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_Init()
|
||||
* 功能说明: RTC初始化
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,有效值包括RTC
|
||||
* RTC_InitStructure * initStruct 包含RTC相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -71,10 +71,10 @@ void RTC_Init(RTC_TypeDef *RTCx, RTC_InitStructure *initStruct)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_Start()
|
||||
* 功能说明: 启动RTC
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_Start()
|
||||
* 功能说明: 启动RTC
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -83,10 +83,10 @@ void RTC_Start(RTC_TypeDef *RTCx)
|
|||
RTCx->EN = 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_Stop()
|
||||
* 功能说明: 停止RTC
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_Stop()
|
||||
* 功能说明: 停止RTC
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -95,11 +95,11 @@ void RTC_Stop(RTC_TypeDef *RTCx)
|
|||
RTCx->EN = 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_GetDateTime()
|
||||
* 功能说明: 获取当前的时间和日期
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,有效值包括RTC
|
||||
* RTC_DateTime * dateTime 获取到的时间、日期值存入此指针指向的结构体
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_GetDateTime()
|
||||
* 功能说明: 获取当前的时间和日期
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,有效值包括RTC
|
||||
* RTC_DateTime * dateTime 获取到的时间、日期值存入此指针指向的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -114,11 +114,11 @@ void RTC_GetDateTime(RTC_TypeDef *RTCx, RTC_DateTime *dateTime)
|
|||
dateTime->Second = (RTCx->MINSEC & RTC_MINSEC_SEC_Msk) >> RTC_MINSEC_SEC_Pos;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_AlarmSetup()
|
||||
* 功能说明: RTC闹钟设定
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,有效值包括RTC
|
||||
* RTC_AlarmStructure * alarmStruct 包含RTC闹钟设定值的结构体
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_AlarmSetup()
|
||||
* 功能说明: RTC闹钟设定
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,有效值包括RTC
|
||||
* RTC_AlarmStructure * alarmStruct 包含RTC闹钟设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -145,13 +145,13 @@ void RTC_AlarmSetup(RTC_TypeDef *RTCx, RTC_AlarmStructure *alarmStruct)
|
|||
NVIC_EnableIRQ(RTC_IRQn);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: calcWeekDay()
|
||||
* 功能说明: 计算指定年、月、日是星期几
|
||||
* 输 入: uint32_t year 年
|
||||
* uint32_t month 月
|
||||
* uint32_t date 日
|
||||
* 输 出: uint32_t 0 星期日 1 星期一 ... ... 6 星期六
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: calcWeekDay()
|
||||
* 功能说明: 计算指定年、月、日是星期几
|
||||
* 输 入: uint32_t year 年
|
||||
* uint32_t month 月
|
||||
* uint32_t date 日
|
||||
* 输 出: uint32_t 0 星期日 1 星期一 ... ... 6 星期六
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
static uint32_t calcWeekDay(uint32_t year, uint32_t month, uint32_t date)
|
||||
|
@ -178,10 +178,10 @@ static uint32_t calcWeekDay(uint32_t year, uint32_t month, uint32_t date)
|
|||
return (cnt + 1) % 7;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntSecondEn()
|
||||
* 功能说明: 秒中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntSecondEn()
|
||||
* 功能说明: 秒中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -190,10 +190,10 @@ void RTC_IntSecondEn(RTC_TypeDef *RTCx)
|
|||
RTCx->IE |= (1 << RTC_IE_SEC_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntSecondDis()
|
||||
* 功能说明: 秒中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntSecondDis()
|
||||
* 功能说明: 秒中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -202,10 +202,10 @@ void RTC_IntSecondDis(RTC_TypeDef *RTCx)
|
|||
RTCx->IE &= ~(1 << RTC_IE_SEC_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntSecondClr()
|
||||
* 功能说明: 秒中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntSecondClr()
|
||||
* 功能说明: 秒中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -214,11 +214,11 @@ void RTC_IntSecondClr(RTC_TypeDef *RTCx)
|
|||
RTCx->IF = (1 << RTC_IF_SEC_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntSecondStat()
|
||||
* 功能说明: 秒中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 秒中断发生 0 秒中断未发生
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntSecondStat()
|
||||
* 功能说明: 秒中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 秒中断发生 0 秒中断未发生
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t RTC_IntSecondStat(RTC_TypeDef *RTCx)
|
||||
|
@ -226,10 +226,10 @@ uint32_t RTC_IntSecondStat(RTC_TypeDef *RTCx)
|
|||
return (RTCx->IF & RTC_IF_SEC_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntMinuteEn()
|
||||
* 功能说明: 分中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntMinuteEn()
|
||||
* 功能说明: 分中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -238,10 +238,10 @@ void RTC_IntMinuteEn(RTC_TypeDef *RTCx)
|
|||
RTCx->IE |= (1 << RTC_IE_MIN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntMinuteDis()
|
||||
* 功能说明: 分中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntMinuteDis()
|
||||
* 功能说明: 分中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -250,10 +250,10 @@ void RTC_IntMinuteDis(RTC_TypeDef *RTCx)
|
|||
RTCx->IE &= ~(1 << RTC_IE_MIN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntMinuteClr()
|
||||
* 功能说明: 分中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntMinuteClr()
|
||||
* 功能说明: 分中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -262,11 +262,11 @@ void RTC_IntMinuteClr(RTC_TypeDef *RTCx)
|
|||
RTCx->IF = (1 << RTC_IF_MIN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntMinuteStat()
|
||||
* 功能说明: 分中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 分中断发生 0 分中断未发生
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntMinuteStat()
|
||||
* 功能说明: 分中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 分中断发生 0 分中断未发生
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t RTC_IntMinuteStat(RTC_TypeDef *RTCx)
|
||||
|
@ -274,10 +274,10 @@ uint32_t RTC_IntMinuteStat(RTC_TypeDef *RTCx)
|
|||
return (RTCx->IF & RTC_IF_MIN_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntHourEn()
|
||||
* 功能说明: 时中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntHourEn()
|
||||
* 功能说明: 时中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -286,10 +286,10 @@ void RTC_IntHourEn(RTC_TypeDef *RTCx)
|
|||
RTCx->IE |= (1 << RTC_IE_HOUR_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntHourDis()
|
||||
* 功能说明: 时中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntHourDis()
|
||||
* 功能说明: 时中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -298,10 +298,10 @@ void RTC_IntHourDis(RTC_TypeDef *RTCx)
|
|||
RTCx->IE &= ~(1 << RTC_IE_HOUR_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntHourClr()
|
||||
* 功能说明: 时中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntHourClr()
|
||||
* 功能说明: 时中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -310,11 +310,11 @@ void RTC_IntHourClr(RTC_TypeDef *RTCx)
|
|||
RTCx->IF = (1 << RTC_IF_HOUR_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntHourStat()
|
||||
* 功能说明: 时中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 时中断发生 0 时中断未发生
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntHourStat()
|
||||
* 功能说明: 时中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 时中断发生 0 时中断未发生
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t RTC_IntHourStat(RTC_TypeDef *RTCx)
|
||||
|
@ -322,10 +322,10 @@ uint32_t RTC_IntHourStat(RTC_TypeDef *RTCx)
|
|||
return (RTCx->IF & RTC_IF_HOUR_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntDateEn()
|
||||
* 功能说明: 日中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntDateEn()
|
||||
* 功能说明: 日中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -334,10 +334,10 @@ void RTC_IntDateEn(RTC_TypeDef *RTCx)
|
|||
RTCx->IE |= (1 << RTC_IE_DATE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntDateDis()
|
||||
* 功能说明: 日中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntDateDis()
|
||||
* 功能说明: 日中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -346,10 +346,10 @@ void RTC_IntDateDis(RTC_TypeDef *RTCx)
|
|||
RTCx->IE &= ~(1 << RTC_IE_DATE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntDateClr()
|
||||
* 功能说明: 日中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntDateClr()
|
||||
* 功能说明: 日中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -358,11 +358,11 @@ void RTC_IntDateClr(RTC_TypeDef *RTCx)
|
|||
RTCx->IF = (1 << RTC_IF_DATE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntDateStat()
|
||||
* 功能说明: 日中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 日中断发生 0 日中断未发生
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntDateStat()
|
||||
* 功能说明: 日中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 日中断发生 0 日中断未发生
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t RTC_IntDateStat(RTC_TypeDef *RTCx)
|
||||
|
@ -370,10 +370,10 @@ uint32_t RTC_IntDateStat(RTC_TypeDef *RTCx)
|
|||
return (RTCx->IF & RTC_IF_DATE_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntAlarmEn()
|
||||
* 功能说明: 闹钟中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntAlarmEn()
|
||||
* 功能说明: 闹钟中断使能
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -382,10 +382,10 @@ void RTC_IntAlarmEn(RTC_TypeDef *RTCx)
|
|||
RTCx->IE |= (1 << RTC_IE_ALARM_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntAlarmDis()
|
||||
* 功能说明: 闹钟中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntAlarmDis()
|
||||
* 功能说明: 闹钟中断禁止
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -394,10 +394,10 @@ void RTC_IntAlarmDis(RTC_TypeDef *RTCx)
|
|||
RTCx->IE &= ~(1 << RTC_IE_ALARM_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntAlarmClr()
|
||||
* 功能说明: 闹钟中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntAlarmClr()
|
||||
* 功能说明: 闹钟中断标志清除
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -406,11 +406,11 @@ void RTC_IntAlarmClr(RTC_TypeDef *RTCx)
|
|||
RTCx->IF = (1 << RTC_IF_ALARM_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntAlarmStat()
|
||||
* 功能说明: 闹钟中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 闹钟中断发生 0 闹钟中断未发生
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: RTC_IntAlarmStat()
|
||||
* 功能说明: 闹钟中断状态
|
||||
* 输 入: RTC_TypeDef * RTCx 指定要被设置的RTC,可取值包括RTC
|
||||
* 输 出: uint32_t 1 闹钟中断发生 0 闹钟中断未发生
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t RTC_IntAlarmStat(RTC_TypeDef *RTCx)
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_sdio.c
|
||||
* 功能说明: SWM320单片机的SDIO接口驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 功能说明: SWM320单片机的SDIO接口驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项: 为了通用性、兼容性、易用性,只支持以512字节为单位的读写
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -23,11 +23,11 @@
|
|||
|
||||
SD_CardInfo SD_cardInfo;
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDIO_Init()
|
||||
* 功能说明: SDIO读写SD卡初始化,初始化成高速4线模式、读写以512字节大小进行
|
||||
* 输 入: uint32_t freq SDIO_CLK时钟频率
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 功能说明: SDIO读写SD卡初始化,初始化成高速4线模式、读写以512字节大小进行
|
||||
* 输 入: uint32_t freq SDIO_CLK时钟频率
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SDIO_Init(uint32_t freq)
|
||||
|
@ -125,12 +125,12 @@ uint32_t SDIO_Init(uint32_t freq)
|
|||
return SD_RES_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDIO_BlockWrite()
|
||||
* 功能说明: 向SD卡写入数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint32_t buff[] 要写入的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 功能说明: 向SD卡写入数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint32_t buff[] 要写入的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SDIO_BlockWrite(uint32_t block_addr, uint32_t buff[])
|
||||
|
@ -161,13 +161,13 @@ uint32_t SDIO_BlockWrite(uint32_t block_addr, uint32_t buff[])
|
|||
return SD_RES_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDIO_MultiBlockWrite()
|
||||
* 功能说明: 向SD卡写入多块数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint16_t block_cnt 要写入的块数
|
||||
* uint32_t buff[] 要写入的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 功能说明: 向SD卡写入多块数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint16_t block_cnt 要写入的块数
|
||||
* uint32_t buff[] 要写入的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SDIO_MultiBlockWrite(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[])
|
||||
|
@ -201,13 +201,13 @@ uint32_t SDIO_MultiBlockWrite(uint32_t block_addr, uint16_t block_cnt, uint32_t
|
|||
return SD_RES_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDIO_DMABlockWrite()
|
||||
* 功能说明: 通过DMA向SD卡写入多块数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint16_t block_cnt 要写入的块数
|
||||
* uint32_t buff[] 要写入的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 功能说明: 通过DMA向SD卡写入多块数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint16_t block_cnt 要写入的块数
|
||||
* uint32_t buff[] 要写入的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SDIO_DMABlockWrite(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[])
|
||||
|
@ -233,12 +233,12 @@ uint32_t SDIO_DMABlockWrite(uint32_t block_addr, uint16_t block_cnt, uint32_t bu
|
|||
return SD_RES_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDIO_BlockRead()
|
||||
* 功能说明: 从SD卡读出数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint32_t buff[] 读出的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 功能说明: 从SD卡读出数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint32_t buff[] 读出的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SDIO_BlockRead(uint32_t block_addr, uint32_t buff[])
|
||||
|
@ -269,13 +269,13 @@ uint32_t SDIO_BlockRead(uint32_t block_addr, uint32_t buff[])
|
|||
return SD_RES_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDIO_MultiBlockRead()
|
||||
* 功能说明: 从SD卡读出多块数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint16_t block_cnt 要读出的块数
|
||||
* uint32_t buff[] 读出的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 功能说明: 从SD卡读出多块数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint16_t block_cnt 要读出的块数
|
||||
* uint32_t buff[] 读出的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SDIO_MultiBlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[])
|
||||
|
@ -309,13 +309,13 @@ uint32_t SDIO_MultiBlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t b
|
|||
return SD_RES_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDIO_DMABlockRead()
|
||||
* 功能说明: 通过DMA从SD卡读出多块数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint16_t block_cnt 要读出的块数
|
||||
* uint32_t buff[] 读出的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 功能说明: 通过DMA从SD卡读出多块数据
|
||||
* 输 入: uint32_t block_addr SD卡块地址,每块512字节
|
||||
* uint16_t block_cnt 要读出的块数
|
||||
* uint32_t buff[] 读出的数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SDIO_DMABlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[])
|
||||
|
@ -341,18 +341,18 @@ uint32_t SDIO_DMABlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t buf
|
|||
return SD_RES_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: _SDIO_SendCmd()
|
||||
* 功能说明: SDIO向SD卡发送命令
|
||||
* 输 入: uint32_t cmd 命令索引
|
||||
* uint32_t arg 命令参数
|
||||
* uint32_t resp_type 响应类型,取值SD_RESP_NO、SD_RESP_32b、SD_RESP_128b、SD_RESP_32b_busy
|
||||
* uint32_t *resp_data 响应内容
|
||||
* uint32_t have_data 是否有数据传输
|
||||
* uint32_t data_read 1 读SD卡 0 写SD卡
|
||||
* uint16_t block_cnt 读写块个数
|
||||
* uint32_t use_dma 1 使用DMA搬运数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 功能说明: SDIO向SD卡发送命令
|
||||
* 输 入: uint32_t cmd 命令索引
|
||||
* uint32_t arg 命令参数
|
||||
* uint32_t resp_type 响应类型,取值SD_RESP_NO、SD_RESP_32b、SD_RESP_128b、SD_RESP_32b_busy
|
||||
* uint32_t *resp_data 响应内容
|
||||
* uint32_t have_data 是否有数据传输
|
||||
* uint32_t data_read 1 读SD卡 0 写SD卡
|
||||
* uint16_t block_cnt 读写块个数
|
||||
* uint32_t use_dma 1 使用DMA搬运数据
|
||||
* 输 出: uint32_t SD_RES_OK 操作成功 SD_RES_ERR 操作失败 SD_RES_TIMEOUT 操作超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t _SDIO_SendCmd(uint32_t cmd, uint32_t arg, uint32_t resp_type, uint32_t *resp_data, uint32_t have_data, uint32_t data_read, uint16_t block_cnt, uint32_t use_dma)
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_sdram.c
|
||||
* 功能说明: SWM320单片机的SDRAM驱动程序
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 功能说明: SWM320单片机的SDRAM驱动程序
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_sdram.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDRAM_Init()
|
||||
* 功能说明: SDRAM控制器初始化
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDRAM_Init()
|
||||
* 功能说明: SDRAM控制器初始化
|
||||
* 输 入: SDRAM_InitStructure * initStruct 包含 SDRAM 控制器相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
|
@ -79,9 +79,9 @@ void SDRAM_Init(SDRAM_InitStructure *initStruct)
|
|||
;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDRAM_Enable()
|
||||
* 功能说明: SDRAM使能,使能后可读写SDRAM
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDRAM_Enable()
|
||||
* 功能说明: SDRAM使能,使能后可读写SDRAM
|
||||
* 输 入: 无
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
|
@ -97,9 +97,9 @@ void SDRAM_Enable(void)
|
|||
__NOP();
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDRAM_Disable()
|
||||
* 功能说明: SDRAM禁能,禁能后SDRAM颗粒进入低功耗模式、并自刷新,不可读写
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SDRAM_Disable()
|
||||
* 功能说明: SDRAM禁能,禁能后SDRAM颗粒进入低功耗模式、并自刷新,不可读写
|
||||
* 输 入: 无
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_spi.c
|
||||
* 功能说明: SWM320单片机的SPI功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_spi.c
|
||||
* 功能说明: SWM320单片机的SPI功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -21,11 +21,11 @@
|
|||
#include "SWM320.h"
|
||||
#include "SWM320_spi.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Init()
|
||||
* 功能说明: SPI同步串行接口初始化,包括帧长度设定、时序设定、速度设定、中断设定、FIFO触发设定
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* SPI_InitStructure * initStruct 包含SPI相关设定值的结构体
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Init()
|
||||
* 功能说明: SPI同步串行接口初始化,包括帧长度设定、时序设定、速度设定、中断设定、FIFO触发设定
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* SPI_InitStructure * initStruct 包含SPI相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -86,10 +86,10 @@ void SPI_Init(SPI_TypeDef *SPIx, SPI_InitStructure *initStruct)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Open()
|
||||
* 功能说明: SPI打开,允许收发
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Open()
|
||||
* 功能说明: SPI打开,允许收发
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -98,10 +98,10 @@ void SPI_Open(SPI_TypeDef *SPIx)
|
|||
SPIx->CTRL |= (0x01 << SPI_CTRL_EN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Close()
|
||||
* 功能说明: SPI关闭,禁止收发
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Close()
|
||||
* 功能说明: SPI关闭,禁止收发
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -110,11 +110,11 @@ void SPI_Close(SPI_TypeDef *SPIx)
|
|||
SPIx->CTRL &= ~SPI_CTRL_EN_Msk;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Read()
|
||||
* 功能说明: 读取一个数据
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 读取到的数据
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Read()
|
||||
* 功能说明: 读取一个数据
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 读取到的数据
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_Read(SPI_TypeDef *SPIx)
|
||||
|
@ -122,11 +122,11 @@ uint32_t SPI_Read(SPI_TypeDef *SPIx)
|
|||
return SPIx->DATA;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Write()
|
||||
* 功能说明: 写入一个数据
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* uint32_t 要写入的数据
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_Write()
|
||||
* 功能说明: 写入一个数据
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* uint32_t 要写入的数据
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -135,11 +135,11 @@ void SPI_Write(SPI_TypeDef *SPIx, uint32_t data)
|
|||
SPIx->DATA = data;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_WriteWithWait()
|
||||
* 功能说明: 写入一个数据并等待数据完全发送出去
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1、SPI1
|
||||
* uint32_t 要写入的数据
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_WriteWithWait()
|
||||
* 功能说明: 写入一个数据并等待数据完全发送出去
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1、SPI1
|
||||
* uint32_t 要写入的数据
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -153,12 +153,12 @@ void SPI_WriteWithWait(SPI_TypeDef *SPIx, uint32_t data)
|
|||
;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_ReadWrite()
|
||||
* 功能说明: 发送一个数据,并返回发送过程中接收到的
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* uint32_t data 要发送的数据
|
||||
* 输 出: uint32_t 接收到的数据
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* uint32_t data 要发送的数据
|
||||
* 输 出: uint32_t 接收到的数据
|
||||
* 注意事项: 对于同一个SPI模块,此函数不应与SPI_Write()混着用,因为SPI_Write()不清除SPI_STAT_RFNE状态
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_ReadWrite(SPI_TypeDef *SPIx, uint32_t data)
|
||||
|
@ -170,11 +170,11 @@ uint32_t SPI_ReadWrite(SPI_TypeDef *SPIx, uint32_t data)
|
|||
return SPIx->DATA;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_IsRXEmpty()
|
||||
* 功能说明: 接收FIFO是否空,如果不空则可以继续SPI_Read()
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 接收FIFO空 0 接收FIFO非空
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_IsRXEmpty()
|
||||
* 功能说明: 接收FIFO是否空,如果不空则可以继续SPI_Read()
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 接收FIFO空 0 接收FIFO非空
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_IsRXEmpty(SPI_TypeDef *SPIx)
|
||||
|
@ -182,11 +182,11 @@ uint32_t SPI_IsRXEmpty(SPI_TypeDef *SPIx)
|
|||
return (SPIx->STAT & SPI_STAT_RFNE_Msk) ? 0 : 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_IsTXFull()
|
||||
* 功能说明: 发送FIFO是否满,如果不满则可以继续SPI_Write()
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO满 0 发送FIFO不满
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_IsTXFull()
|
||||
* 功能说明: 发送FIFO是否满,如果不满则可以继续SPI_Write()
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO满 0 发送FIFO不满
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_IsTXFull(SPI_TypeDef *SPIx)
|
||||
|
@ -194,11 +194,11 @@ uint32_t SPI_IsTXFull(SPI_TypeDef *SPIx)
|
|||
return (SPIx->STAT & SPI_STAT_TFNF_Msk) ? 0 : 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_IsTXEmpty()
|
||||
* 功能说明: 发送FIFO是否空
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO空 0 发送FIFO非空
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_IsTXEmpty()
|
||||
* 功能说明: 发送FIFO是否空
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO空 0 发送FIFO非空
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_IsTXEmpty(SPI_TypeDef *SPIx)
|
||||
|
@ -206,10 +206,10 @@ uint32_t SPI_IsTXEmpty(SPI_TypeDef *SPIx)
|
|||
return (SPIx->STAT & SPI_STAT_TFE_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXHalfFullEn()
|
||||
* 功能说明: 接收FIFO半满中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXHalfFullEn()
|
||||
* 功能说明: 接收FIFO半满中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -218,10 +218,10 @@ void SPI_INTRXHalfFullEn(SPI_TypeDef *SPIx)
|
|||
SPIx->IE |= (0x01 << SPI_IE_RFHF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXHalfFullDis()
|
||||
* 功能说明: 接收FIFO半满中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXHalfFullDis()
|
||||
* 功能说明: 接收FIFO半满中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -230,10 +230,10 @@ void SPI_INTRXHalfFullDis(SPI_TypeDef *SPIx)
|
|||
SPIx->IE &= ~(0x01 << SPI_IE_RFHF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXHalfFullClr()
|
||||
* 功能说明: 接收FIFO半满中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXHalfFullClr()
|
||||
* 功能说明: 接收FIFO半满中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -242,11 +242,11 @@ void SPI_INTRXHalfFullClr(SPI_TypeDef *SPIx)
|
|||
SPIx->IF = (1 << SPI_IF_RFHF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXHalfFullStat()
|
||||
* 功能说明: 接收FIFO半满中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 接收FIFO达到半满 0 接收FIFO未达到半满
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXHalfFullStat()
|
||||
* 功能说明: 接收FIFO半满中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 接收FIFO达到半满 0 接收FIFO未达到半满
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_INTRXHalfFullStat(SPI_TypeDef *SPIx)
|
||||
|
@ -254,10 +254,10 @@ uint32_t SPI_INTRXHalfFullStat(SPI_TypeDef *SPIx)
|
|||
return (SPIx->IF & SPI_IF_RFHF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXFullEn()
|
||||
* 功能说明: 接收FIFO满中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXFullEn()
|
||||
* 功能说明: 接收FIFO满中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -266,10 +266,10 @@ void SPI_INTRXFullEn(SPI_TypeDef *SPIx)
|
|||
SPIx->IE |= (0x01 << SPI_IE_RFF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXFullDis()
|
||||
* 功能说明: 接收FIFO满中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXFullDis()
|
||||
* 功能说明: 接收FIFO满中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -278,10 +278,10 @@ void SPI_INTRXFullDis(SPI_TypeDef *SPIx)
|
|||
SPIx->IE &= ~(0x01 << SPI_IE_RFF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXFullClr()
|
||||
* 功能说明: 接收FIFO满中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXFullClr()
|
||||
* 功能说明: 接收FIFO满中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -290,11 +290,11 @@ void SPI_INTRXFullClr(SPI_TypeDef *SPIx)
|
|||
SPIx->IF = (1 << SPI_IF_RFF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXFullStat()
|
||||
* 功能说明: 接收FIFO满中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 接收FIFO满 0 接收FIFO未满
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXFullStat()
|
||||
* 功能说明: 接收FIFO满中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 接收FIFO满 0 接收FIFO未满
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_INTRXFullStat(SPI_TypeDef *SPIx)
|
||||
|
@ -302,10 +302,10 @@ uint32_t SPI_INTRXFullStat(SPI_TypeDef *SPIx)
|
|||
return (SPIx->IF & SPI_IF_RFF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXOverflowEn()
|
||||
* 功能说明: 接收FIFO溢出中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXOverflowEn()
|
||||
* 功能说明: 接收FIFO溢出中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -314,10 +314,10 @@ void SPI_INTRXOverflowEn(SPI_TypeDef *SPIx)
|
|||
SPIx->IE |= (0x01 << SPI_IE_RFOVF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXOverflowDis()
|
||||
* 功能说明: 接收FIFO溢出中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXOverflowDis()
|
||||
* 功能说明: 接收FIFO溢出中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -326,10 +326,10 @@ void SPI_INTRXOverflowDis(SPI_TypeDef *SPIx)
|
|||
SPIx->IE &= ~(0x01 << SPI_IE_RFOVF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXOverflowClr()
|
||||
* 功能说明: 接收FIFO溢出中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXOverflowClr()
|
||||
* 功能说明: 接收FIFO溢出中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -338,11 +338,11 @@ void SPI_INTRXOverflowClr(SPI_TypeDef *SPIx)
|
|||
SPIx->IF = (0x01 << SPI_IF_RFOVF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXOverflowStat()
|
||||
* 功能说明: 接收FIFO溢出中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 接收FIFO溢出 0 接收FIFO未溢出
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTRXOverflowStat()
|
||||
* 功能说明: 接收FIFO溢出中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 接收FIFO溢出 0 接收FIFO未溢出
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_INTRXOverflowStat(SPI_TypeDef *SPIx)
|
||||
|
@ -350,10 +350,10 @@ uint32_t SPI_INTRXOverflowStat(SPI_TypeDef *SPIx)
|
|||
return (SPIx->IF & SPI_IF_RFOVF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXHalfFullEn()
|
||||
* 功能说明: 发送FIFO半满中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXHalfFullEn()
|
||||
* 功能说明: 发送FIFO半满中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -362,10 +362,10 @@ void SPI_INTTXHalfFullEn(SPI_TypeDef *SPIx)
|
|||
SPIx->IE |= (0x01 << SPI_IE_TFHF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXHalfFullDis()
|
||||
* 功能说明: 发送FIFO半满中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXHalfFullDis()
|
||||
* 功能说明: 发送FIFO半满中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -374,10 +374,10 @@ void SPI_INTTXHalfFullDis(SPI_TypeDef *SPIx)
|
|||
SPIx->IE &= ~(0x01 << SPI_IE_TFHF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXHalfFullClr()
|
||||
* 功能说明: 发送FIFO半满中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXHalfFullClr()
|
||||
* 功能说明: 发送FIFO半满中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -386,11 +386,11 @@ void SPI_INTTXHalfFullClr(SPI_TypeDef *SPIx)
|
|||
SPIx->IF = (1 << SPI_IF_TFHF_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXHalfFullStat()
|
||||
* 功能说明: 发送FIFO半满中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO达到半满 0 发送FIFO未达到半满
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXHalfFullStat()
|
||||
* 功能说明: 发送FIFO半满中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO达到半满 0 发送FIFO未达到半满
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_INTTXHalfFullStat(SPI_TypeDef *SPIx)
|
||||
|
@ -398,10 +398,10 @@ uint32_t SPI_INTTXHalfFullStat(SPI_TypeDef *SPIx)
|
|||
return (SPIx->IF & SPI_IF_TFHF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXEmptyEn()
|
||||
* 功能说明: 发送FIFO空中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXEmptyEn()
|
||||
* 功能说明: 发送FIFO空中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -410,10 +410,10 @@ void SPI_INTTXEmptyEn(SPI_TypeDef *SPIx)
|
|||
SPIx->IE |= (0x01 << SPI_IE_TFE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXEmptyDis()
|
||||
* 功能说明: 发送FIFO空中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXEmptyDis()
|
||||
* 功能说明: 发送FIFO空中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -422,10 +422,10 @@ void SPI_INTTXEmptyDis(SPI_TypeDef *SPIx)
|
|||
SPIx->IE &= ~(0x01 << SPI_IE_TFE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXEmptyClr()
|
||||
* 功能说明: 发送FIFO空中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXEmptyClr()
|
||||
* 功能说明: 发送FIFO空中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -434,11 +434,11 @@ void SPI_INTTXEmptyClr(SPI_TypeDef *SPIx)
|
|||
SPIx->IF = (1 << SPI_IF_TFE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXEmptyStat()
|
||||
* 功能说明: 发送FIFO空中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO空 0 发送FIFO非空
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXEmptyStat()
|
||||
* 功能说明: 发送FIFO空中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO空 0 发送FIFO非空
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_INTTXEmptyStat(SPI_TypeDef *SPIx)
|
||||
|
@ -446,10 +446,10 @@ uint32_t SPI_INTTXEmptyStat(SPI_TypeDef *SPIx)
|
|||
return (SPIx->IF & SPI_IF_TFE_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXCompleteEn()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXCompleteEn()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -458,10 +458,10 @@ void SPI_INTTXCompleteEn(SPI_TypeDef *SPIx)
|
|||
SPIx->IE |= (0x01 << SPI_IE_FTC_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXCompleteDis()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXCompleteDis()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -470,10 +470,10 @@ void SPI_INTTXCompleteDis(SPI_TypeDef *SPIx)
|
|||
SPIx->IE &= ~(0x01 << SPI_IE_FTC_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXCompleteClr()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断状态清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXCompleteClr()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断状态清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -482,11 +482,11 @@ void SPI_INTTXCompleteClr(SPI_TypeDef *SPIx)
|
|||
SPIx->IF = (1 << SPI_IF_FTC_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXCompleteStat()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO空且发送移位寄存器空 0 发送FIFO或发送移位寄存器非空
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXCompleteStat()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送FIFO空且发送移位寄存器空 0 发送FIFO或发送移位寄存器非空
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_INTTXCompleteStat(SPI_TypeDef *SPIx)
|
||||
|
@ -494,10 +494,10 @@ uint32_t SPI_INTTXCompleteStat(SPI_TypeDef *SPIx)
|
|||
return (SPIx->IF & SPI_IF_FTC_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXWordCompleteEn()
|
||||
* 功能说明: 发送FIFO字发送完成中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXWordCompleteEn()
|
||||
* 功能说明: 发送FIFO字发送完成中断使能
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -506,10 +506,10 @@ void SPI_INTTXWordCompleteEn(SPI_TypeDef *SPIx)
|
|||
SPIx->IE |= (0x01 << SPI_IE_WTC_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXWordCompleteDis()
|
||||
* 功能说明: 发送FIFO字发送完成中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXWordCompleteDis()
|
||||
* 功能说明: 发送FIFO字发送完成中断禁止
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -518,10 +518,10 @@ void SPI_INTTXWordCompleteDis(SPI_TypeDef *SPIx)
|
|||
SPIx->IE &= ~(0x01 << SPI_IE_WTC_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXWordCompleteClr()
|
||||
* 功能说明: 发送FIFO字发送完成中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXWordCompleteClr()
|
||||
* 功能说明: 发送FIFO字发送完成中断标志清除
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -530,11 +530,11 @@ void SPI_INTTXWordCompleteClr(SPI_TypeDef *SPIx)
|
|||
SPIx->IF = (1 << SPI_IF_WTC_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXWordCompleteStat()
|
||||
* 功能说明: 发送FIFO字发送完成中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送完成中断已发生 0 发送完成中断未发生
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SPI_INTTXWordCompleteStat()
|
||||
* 功能说明: 发送FIFO字发送完成中断状态
|
||||
* 输 入: SPI_TypeDef * SPIx 指定要被设置的SPI,有效值包括SPI0、SPI1
|
||||
* 输 出: uint32_t 1 发送完成中断已发生 0 发送完成中断未发生
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t SPI_INTTXWordCompleteStat(SPI_TypeDef *SPIx)
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_sram.c
|
||||
* 功能说明: SWM320单片机的SRAM驱动程序
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 功能说明: SWM320单片机的SRAM驱动程序
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_sram.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SRAM_Init()
|
||||
* 功能说明: SRAM控制器初始化
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: SRAM_Init()
|
||||
* 功能说明: SRAM控制器初始化
|
||||
* 输 入: SRAM_InitStructure * initStruct 包含 SRAM 控制器相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_timr.c
|
||||
* 功能说明: SWM320单片机的计数器/定时器功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 功能说明: SWM320单片机的计数器/定时器功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_timr.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_Init()
|
||||
* 功能说明: TIMR定时器/计数器初始化
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,有效值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* uint32_t mode TIMR_MODE_TIMER 定时器模式 TIMR_MODE_COUNTER 计数器模式
|
||||
* uint32_t period 定时/计数周期
|
||||
* uint32_t int_en 中断使能
|
||||
* 功能说明: TIMR定时器/计数器初始化
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,有效值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* uint32_t mode TIMR_MODE_TIMER 定时器模式 TIMR_MODE_COUNTER 计数器模式
|
||||
* uint32_t period 定时/计数周期
|
||||
* uint32_t int_en 中断使能
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -100,10 +100,10 @@ void TIMR_Init(TIMR_TypeDef *TIMRx, uint32_t mode, uint32_t period, uint32_t int
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_Start()
|
||||
* 功能说明: 启动定时器,从初始值开始计时/计数
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_Start()
|
||||
* 功能说明: 启动定时器,从初始值开始计时/计数
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -112,10 +112,10 @@ void TIMR_Start(TIMR_TypeDef *TIMRx)
|
|||
TIMRx->CTRL |= TIMR_CTRL_EN_Msk;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_Stop()
|
||||
* 功能说明: 停止定时器
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_Stop()
|
||||
* 功能说明: 停止定时器
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -124,10 +124,10 @@ void TIMR_Stop(TIMR_TypeDef *TIMRx)
|
|||
TIMRx->CTRL &= ~TIMR_CTRL_EN_Msk;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_Halt()
|
||||
* 功能说明: 暂停定时器,计数值保持不变
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_Halt()
|
||||
* 功能说明: 暂停定时器,计数值保持不变
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -161,10 +161,10 @@ void TIMR_Halt(TIMR_TypeDef *TIMRx)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_Resume()
|
||||
* 功能说明: 恢复定时器,从暂停处继续计数
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_Resume()
|
||||
* 功能说明: 恢复定时器,从暂停处继续计数
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -198,11 +198,11 @@ void TIMR_Resume(TIMR_TypeDef *TIMRx)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_SetPeriod()
|
||||
* 功能说明: 设置定时/计数周期
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* uint32_t period 定时/计数周期
|
||||
* 功能说明: 设置定时/计数周期
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* uint32_t period 定时/计数周期
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -211,11 +211,11 @@ void TIMR_SetPeriod(TIMR_TypeDef *TIMRx, uint32_t period)
|
|||
TIMRx->LDVAL = period;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_GetPeriod()
|
||||
* 功能说明: 获取定时/计数周期
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: uint32_t 当前定时/计数周期
|
||||
* 功能说明: 获取定时/计数周期
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: uint32_t 当前定时/计数周期
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t TIMR_GetPeriod(TIMR_TypeDef *TIMRx)
|
||||
|
@ -223,11 +223,11 @@ uint32_t TIMR_GetPeriod(TIMR_TypeDef *TIMRx)
|
|||
return TIMRx->LDVAL;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_GetCurValue()
|
||||
* 功能说明: 获取当前计数值
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: uint32_t 当前计数值
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_GetCurValue()
|
||||
* 功能说明: 获取当前计数值
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: uint32_t 当前计数值
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t TIMR_GetCurValue(TIMR_TypeDef *TIMRx)
|
||||
|
@ -235,10 +235,10 @@ uint32_t TIMR_GetCurValue(TIMR_TypeDef *TIMRx)
|
|||
return TIMRx->CVAL;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_INTEn()
|
||||
* 功能说明: 使能中断
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_INTEn()
|
||||
* 功能说明: 使能中断
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -278,10 +278,10 @@ void TIMR_INTEn(TIMR_TypeDef *TIMRx)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_INTDis()
|
||||
* 功能说明: 禁能中断
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 功能说明: 禁能中断
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -315,10 +315,10 @@ void TIMR_INTDis(TIMR_TypeDef *TIMRx)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_INTClr()
|
||||
* 功能说明: 清除中断标志
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_INTClr()
|
||||
* 功能说明: 清除中断标志
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -352,11 +352,11 @@ void TIMR_INTClr(TIMR_TypeDef *TIMRx)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: TIMR_INTStat()
|
||||
* 功能说明: 获取中断状态
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: uint32_t 0 TIMRx未产生中断 1 TIMRx产生了中断
|
||||
* 功能说明: 获取中断状态
|
||||
* 输 入: TIMR_TypeDef * TIMRx 指定要被设置的定时器,可取值包括TIMR0、TIMR1、TIMR2、TIMR3、TIMR4、TIMR5
|
||||
* 输 出: uint32_t 0 TIMRx未产生中断 1 TIMRx产生了中断
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t TIMR_INTStat(TIMR_TypeDef *TIMRx)
|
||||
|
@ -385,11 +385,11 @@ uint32_t TIMR_INTStat(TIMR_TypeDef *TIMRx)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: Pulse_Init()
|
||||
* 功能说明: 脉宽测量功能初始化
|
||||
* 输 入: uint32_t pulse PULSE_LOW 测量低脉冲宽度 PULSE_HIGH 测量高脉冲宽度
|
||||
* uint32_t int_en 是否使能脉冲测量完成中断
|
||||
* 功能说明: 脉宽测量功能初始化
|
||||
* 输 入: uint32_t pulse PULSE_LOW 测量低脉冲宽度 PULSE_HIGH 测量高脉冲宽度
|
||||
* uint32_t int_en 是否使能脉冲测量完成中断
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -407,9 +407,9 @@ void Pulse_Init(uint32_t pulse, uint32_t int_en)
|
|||
NVIC_EnableIRQ(PULSE_IRQn);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: Pulse_Start()
|
||||
* 功能说明: 脉宽测量功能启动,测量到脉宽后会自动关闭测量功能
|
||||
* 功能说明: 脉宽测量功能启动,测量到脉宽后会自动关闭测量功能
|
||||
* 输 入: 无
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
|
@ -419,11 +419,11 @@ void Pulse_Start(void)
|
|||
TIMRG->PCTRL |= (1 << TIMRG_PCTRL_EN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: Pulse_Done()
|
||||
* 功能说明: 脉宽测量是否完成
|
||||
* 功能说明: 脉宽测量是否完成
|
||||
* 输 入: 无
|
||||
* 输 出: uint32_t 1 测量已完成 0 测量未完成
|
||||
* 输 出: uint32_t 1 测量已完成 0 测量未完成
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t Pulse_Done(void)
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_uart.c
|
||||
* 功能说明: SWM320单片机的UART串口功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_uart.c
|
||||
* 功能说明: SWM320单片机的UART串口功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项: 没有编写LIN功能相关的函数
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
* COPYRIGHT 2012 Synwit Technology
|
||||
*******************************************************************************************************************************************/
|
||||
#include "SWM320.h"
|
||||
#include "SWM320_uart.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_Init()
|
||||
* 功能说明: UART串口初始化
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* UART_InitStructure * initStruct 包含UART串口相关设定值的结构体
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_Init()
|
||||
* 功能说明: UART串口初始化
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* UART_InitStructure * initStruct 包含UART串口相关设定值的结构体
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -62,8 +62,8 @@ void UART_Init(UART_TypeDef *UARTx, UART_InitStructure *initStruct)
|
|||
(initStruct->StopBits << UART_CTRL_STOP2b_Pos);
|
||||
|
||||
/* 在SWM320中,当 RXLVL >= RXTHR 时触发中断,如果RXTHR设置为0的话,在未接收到数据时就会一直触发中断;
|
||||
其他芯片中,当 RXLVL > RXTHR 时触发中断,为解决SWM320中RXTHR不能为0的问题,并统一库函数API,这里将RXTHR设置值加一
|
||||
*/
|
||||
其他芯片中,当 RXLVL > RXTHR 时触发中断,为解决SWM320中RXTHR不能为0的问题,并统一库函数API,这里将RXTHR设置值加一
|
||||
*/
|
||||
switch ((uint32_t)UARTx) // 软件复位不能清零 NVIC 寄存器,若不手动清除,下面的代码清零 RXTHR 时会导致一直进入 ISR
|
||||
{
|
||||
case ((uint32_t)UART0):
|
||||
|
@ -139,10 +139,10 @@ void UART_Init(UART_TypeDef *UARTx, UART_InitStructure *initStruct)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_Open()
|
||||
* 功能说明: UART串口打开
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_Open()
|
||||
* 功能说明: UART串口打开
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -151,10 +151,10 @@ void UART_Open(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL |= (0x01 << UART_CTRL_EN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_Close()
|
||||
* 功能说明: UART串口关闭
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_Close()
|
||||
* 功能说明: UART串口关闭
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -163,11 +163,11 @@ void UART_Close(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL &= ~(0x01 << UART_CTRL_EN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_WriteByte()
|
||||
* 功能说明: 发送一个字节数据
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,可取值包括UART0、UART1、UART2、UART3、UART4
|
||||
* uint32_t data 要发送的字节
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_WriteByte()
|
||||
* 功能说明: 发送一个字节数据
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,可取值包括UART0、UART1、UART2、UART3、UART4
|
||||
* uint32_t data 要发送的字节
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -176,12 +176,12 @@ void UART_WriteByte(UART_TypeDef *UARTx, uint32_t data)
|
|||
UARTx->DATA = data;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_ReadByte()
|
||||
* 功能说明: 读取一个字节数据,并指出数据是否Valid
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,可取值包括UART0、UART1、UART2、UART3、UART4
|
||||
* uint32_t * data 接收到的数据
|
||||
* 输 出: uint32_t 0 无错误 UART_ERR_PARITY 奇偶校验错误
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_ReadByte()
|
||||
* 功能说明: 读取一个字节数据,并指出数据是否Valid
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,可取值包括UART0、UART1、UART2、UART3、UART4
|
||||
* uint32_t * data 接收到的数据
|
||||
* 输 出: uint32_t 0 无错误 UART_ERR_PARITY 奇偶校验错误
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_ReadByte(UART_TypeDef *UARTx, uint32_t *data)
|
||||
|
@ -196,11 +196,11 @@ uint32_t UART_ReadByte(UART_TypeDef *UARTx, uint32_t *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_IsTXBusy()
|
||||
* 功能说明: UART是否正在发送数据
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 UART正在发送数据 0 数据已发完
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_IsTXBusy()
|
||||
* 功能说明: UART是否正在发送数据
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 UART正在发送数据 0 数据已发完
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_IsTXBusy(UART_TypeDef *UARTx)
|
||||
|
@ -208,11 +208,11 @@ uint32_t UART_IsTXBusy(UART_TypeDef *UARTx)
|
|||
return (UARTx->CTRL & UART_CTRL_TXIDLE_Msk) ? 0 : 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_IsRXFIFOEmpty()
|
||||
* 功能说明: 接收FIFO是否为空,如果不空则说明其中有数据可以读取
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 接收FIFO空 0 接收FIFO非空
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_IsRXFIFOEmpty()
|
||||
* 功能说明: 接收FIFO是否为空,如果不空则说明其中有数据可以读取
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 接收FIFO空 0 接收FIFO非空
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_IsRXFIFOEmpty(UART_TypeDef *UARTx)
|
||||
|
@ -220,11 +220,11 @@ uint32_t UART_IsRXFIFOEmpty(UART_TypeDef *UARTx)
|
|||
return (UARTx->CTRL & UART_CTRL_RXNE_Msk) ? 0 : 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_IsTXFIFOFull()
|
||||
* 功能说明: 发送FIFO是否为满,如果不满则可以继续向其中写入数据
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 发送FIFO满 0 发送FIFO不满
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_IsTXFIFOFull()
|
||||
* 功能说明: 发送FIFO是否为满,如果不满则可以继续向其中写入数据
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 发送FIFO满 0 发送FIFO不满
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_IsTXFIFOFull(UART_TypeDef *UARTx)
|
||||
|
@ -232,11 +232,11 @@ uint32_t UART_IsTXFIFOFull(UART_TypeDef *UARTx)
|
|||
return (UARTx->CTRL & UART_CTRL_TXFF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_SetBaudrate()
|
||||
* 功能说明: 设置波特率
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t baudrate 要设置的波特率
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_SetBaudrate()
|
||||
* 功能说明: 设置波特率
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t baudrate 要设置的波特率
|
||||
* 输 出: 无
|
||||
* 注意事项: 不要在串口工作时更改波特率,使用此函数前请先调用UART_Close()关闭串口
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -246,11 +246,11 @@ void UART_SetBaudrate(UART_TypeDef *UARTx, uint32_t baudrate)
|
|||
UARTx->BAUD |= ((SystemCoreClock / 16 / baudrate - 1) << UART_BAUD_BAUD_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_GetBaudrate()
|
||||
* 功能说明: 查询波特率
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 当前波特率
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_GetBaudrate()
|
||||
* 功能说明: 查询波特率
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 当前波特率
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_GetBaudrate(UART_TypeDef *UARTx)
|
||||
|
@ -258,12 +258,12 @@ uint32_t UART_GetBaudrate(UART_TypeDef *UARTx)
|
|||
return SystemCoreClock / 16 / (((UARTx->BAUD & UART_BAUD_BAUD_Msk) >> UART_BAUD_BAUD_Pos) + 1);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_CTSConfig()
|
||||
* 功能说明: UART CTS流控配置
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t enable 1 使能CTS流控 0 禁止CTS流控
|
||||
* uint32_t polarity 0 CTS输入为低表示可以发送数据 1 CTS输入为高表示可以发送数据
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_CTSConfig()
|
||||
* 功能说明: UART CTS流控配置
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t enable 1 使能CTS流控 0 禁止CTS流控
|
||||
* uint32_t polarity 0 CTS输入为低表示可以发送数据 1 CTS输入为高表示可以发送数据
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -274,11 +274,11 @@ void UART_CTSConfig(UART_TypeDef *UARTx, uint32_t enable, uint32_t polarity)
|
|||
(polarity << UART_CTSCR_POL_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_CTSLineState()
|
||||
* 功能说明: UART CTS线当前状态
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 0 CTS线当前为低电平 1 CTS线当前为高电平
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_CTSLineState()
|
||||
* 功能说明: UART CTS线当前状态
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 0 CTS线当前为低电平 1 CTS线当前为高电平
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_CTSLineState(UART_TypeDef *UARTx)
|
||||
|
@ -286,13 +286,13 @@ uint32_t UART_CTSLineState(UART_TypeDef *UARTx)
|
|||
return (UARTx->CTSCR & UART_CTSCR_STAT_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_RTSConfig()
|
||||
* 功能说明: UART RTS流控配置
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t enable 1 使能RTS流控 0 禁止RTS流控
|
||||
* uint32_t polarity 0 RTS输出低表示可以接收数据 1 RTS输出高表示可以接收数据
|
||||
* uint32_t threshold RTS流控的触发阈值,可取值UART_RTS_1BYTE、UART_RTS_2BYTE、UART_RTS_4BYTE、UART_RTS_6BYTE
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_RTSConfig()
|
||||
* 功能说明: UART RTS流控配置
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t enable 1 使能RTS流控 0 禁止RTS流控
|
||||
* uint32_t polarity 0 RTS输出低表示可以接收数据 1 RTS输出高表示可以接收数据
|
||||
* uint32_t threshold RTS流控的触发阈值,可取值UART_RTS_1BYTE、UART_RTS_2BYTE、UART_RTS_4BYTE、UART_RTS_6BYTE
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -304,11 +304,11 @@ void UART_RTSConfig(UART_TypeDef *UARTx, uint32_t enable, uint32_t polarity, uin
|
|||
(threshold << UART_RTSCR_THR_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_RTSLineState()
|
||||
* 功能说明: UART RTS线当前状态
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 0 RTS线当前为低电平 1 RTS线当前为高电平
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_RTSLineState()
|
||||
* 功能说明: UART RTS线当前状态
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 0 RTS线当前为低电平 1 RTS线当前为高电平
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_RTSLineState(UART_TypeDef *UARTx)
|
||||
|
@ -316,12 +316,12 @@ uint32_t UART_RTSLineState(UART_TypeDef *UARTx)
|
|||
return (UARTx->RTSCR & UART_RTSCR_STAT_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_LINConfig()
|
||||
* 功能说明: UART LIN功能配置
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t detectedIEn 检测到Break中断使能
|
||||
* uint32_t generatedIEn Break发送完成中断使能
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_LINConfig()
|
||||
* 功能说明: UART LIN功能配置
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t detectedIEn 检测到Break中断使能
|
||||
* uint32_t generatedIEn Break发送完成中断使能
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -332,10 +332,10 @@ void UART_LINConfig(UART_TypeDef *UARTx, uint32_t detectedIEn, uint32_t generate
|
|||
(generatedIEn << UART_LINCR_GENBRKIE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_LINGenerate()
|
||||
* 功能说明: UART LIN产生/发送Break
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_LINGenerate()
|
||||
* 功能说明: UART LIN产生/发送Break
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -344,11 +344,11 @@ void UART_LINGenerate(UART_TypeDef *UARTx)
|
|||
UARTx->LINCR |= (1 << UART_LINCR_GENBRK_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_LINIsDetected()
|
||||
* 功能说明: UART LIN是否检测到Break
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 检测到LIN Break 0 未检测到LIN Break
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_LINIsDetected()
|
||||
* 功能说明: UART LIN是否检测到Break
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 检测到LIN Break 0 未检测到LIN Break
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_LINIsDetected(UART_TypeDef *UARTx)
|
||||
|
@ -356,11 +356,11 @@ uint32_t UART_LINIsDetected(UART_TypeDef *UARTx)
|
|||
return (UARTx->LINCR & UART_LINCR_BRKDETIF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_LINIsGenerated()
|
||||
* 功能说明: UART LIN Break是否发送完成
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 LIN Break 发送完成 0 LIN Break发送未完成
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_LINIsGenerated()
|
||||
* 功能说明: UART LIN Break是否发送完成
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 LIN Break 发送完成 0 LIN Break发送未完成
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_LINIsGenerated(UART_TypeDef *UARTx)
|
||||
|
@ -368,13 +368,13 @@ uint32_t UART_LINIsGenerated(UART_TypeDef *UARTx)
|
|||
return (UARTx->LINCR & UART_LINCR_GENBRKIF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_ABRStart()
|
||||
* 功能说明: UART 自动波特率检测开始
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t detectChar 用于自动检测、计算波特率的检测字符
|
||||
* 8位数据时可取值:0xFF、0xFE、0xF8、0x80,分别表示发送方必须发送0xFF、0xFE、0xF8、0x80
|
||||
* 9位数据时可取值:0x1FF、0x1FE、0x1F8、0x180,分别表示发送方必须发送0x1FF、0x1FE、0x1F8、0x180
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_ABRStart()
|
||||
* 功能说明: UART 自动波特率检测开始
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* uint32_t detectChar 用于自动检测、计算波特率的检测字符
|
||||
* 8位数据时可取值:0xFF、0xFE、0xF8、0x80,分别表示发送方必须发送0xFF、0xFE、0xF8、0x80
|
||||
* 9位数据时可取值:0x1FF、0x1FE、0x1F8、0x180,分别表示发送方必须发送0x1FF、0x1FE、0x1F8、0x180
|
||||
* 输 出: 无
|
||||
* 注意事项: 自动波特率检测时不能开启奇偶校验
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -399,11 +399,11 @@ void UART_ABRStart(UART_TypeDef *UARTx, uint32_t detectChar)
|
|||
(bits << UART_BAUD_ABRBIT_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_ABRIsDone()
|
||||
* 功能说明: UART 自动波特率是否完成
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 0 未完成 UART_ABR_RES_OK 已完成,且成功 UART_ABR_RES_ERR 已完成,但失败、出错
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_ABRIsDone()
|
||||
* 功能说明: UART 自动波特率是否完成
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 0 未完成 UART_ABR_RES_OK 已完成,且成功 UART_ABR_RES_ERR 已完成,但失败、出错
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_ABRIsDone(UART_TypeDef *UARTx)
|
||||
|
@ -422,10 +422,10 @@ uint32_t UART_ABRIsDone(UART_TypeDef *UARTx)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTRXThresholdEn()
|
||||
* 功能说明: 当RX FIFO中数据个数 >= RXThreshold时 触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTRXThresholdEn()
|
||||
* 功能说明: 当RX FIFO中数据个数 >= RXThreshold时 触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -434,10 +434,10 @@ void UART_INTRXThresholdEn(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL |= (0x01 << UART_CTRL_RXIE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTRXThresholdDis()
|
||||
* 功能说明: 当RX FIFO中数据个数 >= RXThreshold时 不触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTRXThresholdDis()
|
||||
* 功能说明: 当RX FIFO中数据个数 >= RXThreshold时 不触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -446,11 +446,11 @@ void UART_INTRXThresholdDis(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL &= ~(0x01 << UART_CTRL_RXIE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTRXThresholdStat()
|
||||
* 功能说明: 是否RX FIFO中数据个数 >= RXThreshold
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 RX FIFO中数据个数 >= RXThreshold 0 RX FIFO中数据个数 < RXThreshold
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTRXThresholdStat()
|
||||
* 功能说明: 是否RX FIFO中数据个数 >= RXThreshold
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 RX FIFO中数据个数 >= RXThreshold 0 RX FIFO中数据个数 < RXThreshold
|
||||
* 注意事项: RXIF = RXTHRF & RXIE
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_INTRXThresholdStat(UART_TypeDef *UARTx)
|
||||
|
@ -458,10 +458,10 @@ uint32_t UART_INTRXThresholdStat(UART_TypeDef *UARTx)
|
|||
return (UARTx->BAUD & UART_BAUD_RXIF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXThresholdEn()
|
||||
* 功能说明: 当TX FIFO中数据个数 <= TXThreshold时 触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXThresholdEn()
|
||||
* 功能说明: 当TX FIFO中数据个数 <= TXThreshold时 触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -470,10 +470,10 @@ void UART_INTTXThresholdEn(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL |= (0x01 << UART_CTRL_TXIE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXThresholdDis()
|
||||
* 功能说明: 当TX FIFO中数据个数 <= TXThreshold时 不触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXThresholdDis()
|
||||
* 功能说明: 当TX FIFO中数据个数 <= TXThreshold时 不触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -482,11 +482,11 @@ void UART_INTTXThresholdDis(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL &= ~(0x01 << UART_CTRL_TXIE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXThresholdStat()
|
||||
* 功能说明: 是否TX FIFO中数据个数 <= TXThreshold
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 TX FIFO中数据个数 <= TXThreshold 0 TX FIFO中数据个数 > TXThreshold
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXThresholdStat()
|
||||
* 功能说明: 是否TX FIFO中数据个数 <= TXThreshold
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 TX FIFO中数据个数 <= TXThreshold 0 TX FIFO中数据个数 > TXThreshold
|
||||
* 注意事项: TXIF = TXTHRF & TXIE
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_INTTXThresholdStat(UART_TypeDef *UARTx)
|
||||
|
@ -494,10 +494,10 @@ uint32_t UART_INTTXThresholdStat(UART_TypeDef *UARTx)
|
|||
return (UARTx->BAUD & UART_BAUD_TXIF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTimeoutEn()
|
||||
* 功能说明: 接收发生超时时 触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTimeoutEn()
|
||||
* 功能说明: 接收发生超时时 触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -506,10 +506,10 @@ void UART_INTTimeoutEn(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL |= (0x01 << UART_CTRL_TOIE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTimeoutDis()
|
||||
* 功能说明: 接收发生超时时 不触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTimeoutDis()
|
||||
* 功能说明: 接收发生超时时 不触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -518,11 +518,11 @@ void UART_INTTimeoutDis(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL &= ~(0x01 << UART_CTRL_TOIE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTimeoutStat()
|
||||
* 功能说明: 是否发生了接收超时,即超过 TimeoutTime/(Baudrate/10) 秒没有在RX线上接收到数据时触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 发生了接收超时 0 未发生接收超时
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTimeoutStat()
|
||||
* 功能说明: 是否发生了接收超时,即超过 TimeoutTime/(Baudrate/10) 秒没有在RX线上接收到数据时触发中断
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 发生了接收超时 0 未发生接收超时
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_INTTimeoutStat(UART_TypeDef *UARTx)
|
||||
|
@ -530,10 +530,10 @@ uint32_t UART_INTTimeoutStat(UART_TypeDef *UARTx)
|
|||
return (UARTx->BAUD & UART_BAUD_TOIF_Msk) ? 1 : 0;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXDoneEn()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断使能
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXDoneEn()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断使能
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -542,10 +542,10 @@ void UART_INTTXDoneEn(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL |= (0x01 << UART_CTRL_TXDOIE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXDoneDis()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断禁止
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXDoneDis()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断禁止
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -554,11 +554,11 @@ void UART_INTTXDoneDis(UART_TypeDef *UARTx)
|
|||
UARTx->CTRL &= ~(0x01 << UART_CTRL_TXDOIE_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXDoneStat()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断状态
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 发送FIFO空且发送移位寄存器空 0 发送FIFO或发送移位寄存器未空
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: UART_INTTXDoneStat()
|
||||
* 功能说明: 发送FIFO空且发送移位寄存器空中断状态
|
||||
* 输 入: UART_TypeDef * UARTx 指定要被设置的UART串口,有效值包括UART0、UART1、UART2、UART3
|
||||
* 输 出: uint32_t 1 发送FIFO空且发送移位寄存器空 0 发送FIFO或发送移位寄存器未空
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t UART_INTTXDoneStat(UART_TypeDef *UARTx)
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/******************************************************************************************************************************************
|
||||
/******************************************************************************************************************************************
|
||||
* 文件名称: SWM320_wdt.c
|
||||
* 功能说明: SWM320单片机的WDT看门狗功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 功能说明: SWM320单片机的WDT看门狗功能驱动库
|
||||
* 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||||
* 注意事项:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
* 版本日期: V1.1.0 2017年10月25日
|
||||
* 升级记录:
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||||
* -ECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
|
@ -21,12 +21,12 @@
|
|||
#include "SWM320.h"
|
||||
#include "SWM320_wdt.h"
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_Init()
|
||||
* 功能说明: WDT看门狗初始化
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* uint32_t peroid 取值0--4294967295,单位为单片机系统时钟周期
|
||||
* uint32_t mode WDT_MODE_RESET 超时产生复位 WDT_MODE_INTERRUPT 超时产生中断
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_Init()
|
||||
* 功能说明: WDT看门狗初始化
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* uint32_t peroid 取值0--4294967295,单位为单片机系统时钟周期
|
||||
* uint32_t mode WDT_MODE_RESET 超时产生复位 WDT_MODE_INTERRUPT 超时产生中断
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -54,10 +54,10 @@ void WDT_Init(WDT_TypeDef *WDTx, uint32_t peroid, uint32_t mode)
|
|||
}
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_Start()
|
||||
* 功能说明: 启动指定WDT,开始倒计时
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_Start()
|
||||
* 功能说明: 启动指定WDT,开始倒计时
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -66,10 +66,10 @@ void WDT_Start(WDT_TypeDef *WDTx)
|
|||
WDTx->CR |= (0x01 << WDT_CR_EN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_Stop()
|
||||
* 功能说明: 关闭指定WDT,停止倒计时
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_Stop()
|
||||
* 功能说明: 关闭指定WDT,停止倒计时
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -78,10 +78,10 @@ void WDT_Stop(WDT_TypeDef *WDTx)
|
|||
WDTx->CR &= ~(0x01 << WDT_CR_EN_Pos);
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_Feed()
|
||||
* 功能说明: 喂狗,重新从装载值开始倒计时
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_Feed()
|
||||
* 功能说明: 喂狗,重新从装载值开始倒计时
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -90,11 +90,11 @@ void WDT_Feed(WDT_TypeDef *WDTx)
|
|||
WDTx->FEED = 0x55;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_GetValue()
|
||||
* 功能说明: 获取指定看门狗定时器的当前倒计时值
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* 输 出: int32_t 看门狗当前计数值
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_GetValue()
|
||||
* 功能说明: 获取指定看门狗定时器的当前倒计时值
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* 输 出: int32_t 看门狗当前计数值
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
int32_t WDT_GetValue(WDT_TypeDef *WDTx)
|
||||
|
@ -102,10 +102,10 @@ int32_t WDT_GetValue(WDT_TypeDef *WDTx)
|
|||
return WDTx->VALUE;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_INTClr()
|
||||
* 功能说明: 中断标志清除
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_INTClr()
|
||||
* 功能说明: 中断标志清除
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* 输 出: 无
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
|
@ -114,11 +114,11 @@ void WDT_INTClr(WDT_TypeDef *WDTx)
|
|||
WDTx->IF = 1;
|
||||
}
|
||||
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_INTStat()
|
||||
* 功能说明: 中断状态查询
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* 输 出: int32_t 1 发生中断溢出 0 未发生中断溢出
|
||||
/******************************************************************************************************************************************
|
||||
* 函数名称: WDT_INTStat()
|
||||
* 功能说明: 中断状态查询
|
||||
* 输 入: WDT_TypeDef * WDTx 指定要被设置的看门狗,有效值包括WDT
|
||||
* 输 出: int32_t 1 发生中断溢出 0 未发生中断溢出
|
||||
* 注意事项: 无
|
||||
******************************************************************************************************************************************/
|
||||
uint32_t WDT_INTStat(WDT_TypeDef *WDTx)
|
||||
|
|
Loading…
Reference in New Issue