format code

This commit is contained in:
Meco Man 2021-04-10 19:07:48 +08:00
parent 29ae0afb3b
commit 5279977f2e
42 changed files with 696 additions and 696 deletions

View File

@ -8,15 +8,15 @@ extern int Image$$RW_IRAM1$$ZI$$Limit;
extern int __bss_end; extern int __bss_end;
#endif #endif
uint8_t CpuUsageMajor, CpuUsageMinor; //CPUʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint8_t CpuUsageMajor, CpuUsageMinor; //CPU使用率
USHORT usModbusUserData[MB_PDU_SIZE_MAX]; USHORT usModbusUserData[MB_PDU_SIZE_MAX];
UCHAR ucModbusUserData[MB_PDU_SIZE_MAX]; UCHAR ucModbusUserData[MB_PDU_SIZE_MAX];
//====================<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>================================== //====================操作系统各线程优先级==================================
#define thread_SysMonitor_Prio 11 #define thread_SysMonitor_Prio 11
#define thread_ModbusSlavePoll_Prio 10 #define thread_ModbusSlavePoll_Prio 10
#define thread_ModbusMasterPoll_Prio 9 #define thread_ModbusMasterPoll_Prio 9
ALIGN(RT_ALIGN_SIZE) ALIGN(RT_ALIGN_SIZE)
//====================<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>̶߳<EFBFBD>ջ==================================== //====================操作系统各线程堆栈====================================
static rt_uint8_t thread_SysMonitor_stack[256]; static rt_uint8_t thread_SysMonitor_stack[256];
static rt_uint8_t thread_ModbusSlavePoll_stack[512]; static rt_uint8_t thread_ModbusSlavePoll_stack[512];
static rt_uint8_t thread_ModbusMasterPoll_stack[512]; static rt_uint8_t thread_ModbusMasterPoll_stack[512];
@ -25,11 +25,11 @@ struct rt_thread thread_SysMonitor;
struct rt_thread thread_ModbusSlavePoll; struct rt_thread thread_ModbusSlavePoll;
struct rt_thread thread_ModbusMasterPoll; struct rt_thread thread_ModbusMasterPoll;
//***************************ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>*************************** //***************************系统监控线程***************************
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void thread_entry_SysRunLed(void* parameter) //函数定义: void thread_entry_SysRunLed(void* parameter)
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //入口参数:无
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //出口参数:无
//<EFBFBD><EFBFBD> ע<><D7A2>Editor<6F><72>Armink 2013-08-02 Company: BXXJS //备 注EditorArmink 2013-08-02 Company: BXXJS
//****************************************************************** //******************************************************************
void thread_entry_SysMonitor(void* parameter) void thread_entry_SysMonitor(void* parameter)
{ {
@ -60,18 +60,18 @@ void thread_entry_SysMonitor(void* parameter)
// errorCode = eMBMasterReqWriteMultipleHoldingRegister(1,3,2,usModbusUserData,RT_WAITING_FOREVER); // errorCode = eMBMasterReqWriteMultipleHoldingRegister(1,3,2,usModbusUserData,RT_WAITING_FOREVER);
// errorCode = eMBMasterReqReadHoldingRegister(1,3,2,RT_WAITING_FOREVER); // errorCode = eMBMasterReqReadHoldingRegister(1,3,2,RT_WAITING_FOREVER);
// errorCode = eMBMasterReqReadWriteMultipleHoldingRegister(1,3,2,usModbusUserData,5,2,RT_WAITING_FOREVER); // errorCode = eMBMasterReqReadWriteMultipleHoldingRegister(1,3,2,usModbusUserData,5,2,RT_WAITING_FOREVER);
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //记录出错次数
if (errorCode != MB_MRE_NO_ERR) { if (errorCode != MB_MRE_NO_ERR) {
errorCount++; errorCount++;
} }
} }
} }
//************************ Modbus<EFBFBD>ӻ<EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD>߳<EFBFBD>*************************** //************************ Modbus从机轮训线程***************************
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void thread_entry_ModbusSlavePoll(void* parameter) //函数定义: void thread_entry_ModbusSlavePoll(void* parameter)
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //入口参数:无
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //出口参数:无
//<EFBFBD><EFBFBD> ע<><D7A2>Editor<6F><72>Armink 2013-08-02 Company: BXXJS //备 注EditorArmink 2013-08-02 Company: BXXJS
//****************************************************************** //******************************************************************
void thread_entry_ModbusSlavePoll(void* parameter) void thread_entry_ModbusSlavePoll(void* parameter)
{ {
@ -83,11 +83,11 @@ void thread_entry_ModbusSlavePoll(void* parameter)
} }
} }
//************************ Modbus<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD>߳<EFBFBD>*************************** //************************ Modbus主机轮训线程***************************
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void thread_entry_ModbusMasterPoll(void* parameter) //函数定义: void thread_entry_ModbusMasterPoll(void* parameter)
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //入口参数:无
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //出口参数:无
//<EFBFBD><EFBFBD> ע<><D7A2>Editor<6F><72>Armink 2013-08-28 Company: BXXJS //备 注EditorArmink 2013-08-28 Company: BXXJS
//****************************************************************** //******************************************************************
void thread_entry_ModbusMasterPoll(void* parameter) void thread_entry_ModbusMasterPoll(void* parameter)
{ {
@ -99,11 +99,11 @@ void thread_entry_ModbusMasterPoll(void* parameter)
} }
} }
//**********************ϵͳ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>******************************** //**********************系统初始化函数********************************
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: int rt_application_init(void) //函数定义: int rt_application_init(void)
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //入口参数:无
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //出口参数:无
//<EFBFBD><EFBFBD> ע<><D7A2>Editor<6F><72>Liuqiuhu 2013-1-31 Company: BXXJS //备 注EditorLiuqiuhu 2013-1-31 Company: BXXJS
//******************************************************************** //********************************************************************
int rt_application_init(void) int rt_application_init(void)
{ {
@ -127,11 +127,11 @@ int rt_application_init(void)
return 0; return 0;
} }
//**************************<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>RT-Thread<61><64><EFBFBD><EFBFBD>************************************* //**************************初始化RT-Thread函数*************************************
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void rtthread_startup(void) //函数定义: void rtthread_startup(void)
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //入口参数:无
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //出口参数:无
//<EFBFBD><EFBFBD> ע<><D7A2>Editor<6F><72>Armink 2011-04-04 Company: BXXJS //备 注EditorArmink 2011-04-04 Company: BXXJS
//********************************************************************************** //**********************************************************************************
void rtthread_startup(void) void rtthread_startup(void)
{ {

View File

@ -78,7 +78,7 @@ void IWDG_Feed(void);
/***********************************************************************************************************/ /***********************************************************************************************************/
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD><EFBFBD><EFBFBD> //软、硬件版本号定义
#define VERSION_SOFTWARE_MAJOR 1 #define VERSION_SOFTWARE_MAJOR 1
#define VERSION_SOFTWARE_MINOR 0 #define VERSION_SOFTWARE_MINOR 0
#define VERSION_HARDWARE_MAJOR 1 #define VERSION_HARDWARE_MAJOR 1

View File

@ -60,18 +60,18 @@ void rt_hw_board_init()
*******************************************************************************/ *******************************************************************************/
static void RCC_Configuration(void) static void RCC_Configuration(void)
{ {
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> //下面是给各模块开启时钟
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>GPIO //启动GPIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | \ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | \
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | \ RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | \
RCC_APB2Periph_GPIOE , RCC_APB2Periph_GPIOE ,
ENABLE); ENABLE);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>AFIO //启动AFIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//<2F><><EFBFBD><EFBFBD>ADCת<43><D7AA>ʱ<EFBFBD><CAB1> //配置ADC转换时钟
RCC_ADCCLKConfig(RCC_PCLK2_Div8); //9M RCC_ADCCLKConfig(RCC_PCLK2_Div8); //9M
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>DMAʱ<EFBFBD><EFBFBD> //启动DMA时钟
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//ʹ<EFBFBD><EFBFBD>DMAʱ<EFBFBD><EFBFBD> RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//使能DMA时钟
/* Enable ADC1 and GPIOC clock */ /* Enable ADC1 and GPIOC clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);
} }
@ -106,17 +106,17 @@ static void GPIO_Configuration(void)
{ {
GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitTypeDef GPIO_InitStructure;
/***************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO<49><4F>ʼ<EFBFBD><CABC>*********************/ /***************数字输出IO初始化*********************/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_11 | GPIO_Pin_12; //<EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>1 LED1 LED2 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_11 | GPIO_Pin_12; //继电器1 LED1 LED2
GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_14 | GPIO_Pin_15; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD><CCB5><EFBFBD>3 <20>̵<EFBFBD><CCB5><EFBFBD>2 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_14 | GPIO_Pin_15; //蜂鸣器 继电器3 继电器2
GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_Init(GPIOB, &GPIO_InitStructure);
/*************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO<49><4F>ʼ<EFBFBD><CABC>*********************/ /*************数字输入IO初始化*********************/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
@ -125,29 +125,29 @@ static void GPIO_Configuration(void)
} }
//*******************<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD>************************************* //*******************初始化独立看门狗*************************************
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void IWDG_Configuration(void) //函数定义: void IWDG_Configuration(void)
//<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD> //描 述:初始化独立看门狗
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //入口参数:无
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //出口参数:无
//<EFBFBD><EFBFBD> ע<><D7A2><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>=4*2^prer.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֻ<D6B5><D6BB><EFBFBD><EFBFBD>256!ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>):Tout=40K/((4*2^prer)*rlr)ֵ 2S<32><53>ʱ //备 注:分频因子=4*2^prer.但最大值只能是256!时间计算(大概):Tout=40K/((4*2^prer)*rlr)值 2S超时
//Editor<EFBFBD><EFBFBD>liuqh 2013-1-16 Company: BXXJS //Editorliuqh 2013-1-16 Company: BXXJS
//******************************************************************* //*******************************************************************
static void IWDG_Configuration(void) static void IWDG_Configuration(void)
{ {
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//ʹ<>ܶ<EFBFBD>IWDG->PR<50><52>IWDG->RLR<4C><52>д IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能对IWDG->PR和IWDG->RLR的写
IWDG_SetPrescaler(IWDG_Prescaler_64);//64<36><34>Ƶ IWDG_SetPrescaler(IWDG_Prescaler_64);//64分频
IWDG_SetReload(1300); IWDG_SetReload(1300);
IWDG_ReloadCounter(); IWDG_ReloadCounter();
IWDG_Enable(); IWDG_Enable();
} }
//*******************ι<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD>************************************* //*******************喂独立看门狗*************************************
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void IWDG_Feed(void) //函数定义: void IWDG_Feed(void)
//<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD> //描 述:初始化独立看门狗
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //入口参数:无
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>prer:<3A><>Ƶ<EFBFBD><C6B5>:0~7(ֻ<>е<EFBFBD><33><CEBB>Ч!)<29><>rlr:<3A><>װ<EFBFBD>ؼĴ<D8BC><C4B4><EFBFBD>ֵ:<3A><>11λ<31><CEBB>Ч. //出口参数prer:分频数:0~7(只有低3位有效!)rlr:重装载寄存器值:低11位有效.
//<EFBFBD><EFBFBD> ע<><D7A2><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>=4*2^prer.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵֻ<D6B5><D6BB><EFBFBD><EFBFBD>256!ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>):Tout=40K/((4*2^prer)*rlr)ֵ //备 注:分频因子=4*2^prer.但最大值只能是256!时间计算(大概):Tout=40K/((4*2^prer)*rlr)值
//Editor<EFBFBD><EFBFBD>liuqh 2013-1-16 Company: BXXJS //Editorliuqh 2013-1-16 Company: BXXJS
//******************************************************************* //*******************************************************************
void IWDG_Feed(void) void IWDG_Feed(void)
@ -219,19 +219,19 @@ void BSP_Init (void)
NVIC_Configuration(); NVIC_Configuration();
SysTick_Configuration(); SysTick_Configuration();
GPIO_Configuration(); GPIO_Configuration();
// TODO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD>ʱע<CAB1>Ϳ<EFBFBD><CDBF>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> // TODO 方便调试,暂时注释看门狗,正式发布时需要打开
// IWDG_Configuration(); // IWDG_Configuration();
} }
//****************************<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>******************************** //****************************防超时程序********************************
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: uint8_t AvoidTimeout(uint32_t TimeOfTimeout,uint32_t Period,uint8_t (*DetectCondition)()) //函数定义: uint8_t AvoidTimeout(uint32_t TimeOfTimeout,uint32_t Period,uint8_t (*DetectCondition)())
//<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TimeOfTimeoutʱ<74><CAB1><EFBFBD>ڣ<EFBFBD>ÿPeriodʱ<64><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>DetectCondition()<29><><EFBFBD>ص<EFBFBD>ֵ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч //描 述在TimeOfTimeout时间内每Period时间检测一次DetectCondition()返回的值是否有效
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TimeOfTimeout<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>systick<EFBFBD><EFBFBD> //入口参数TimeOfTimeout防超时总时间单位systick
// Period <EFBFBD><EFBFBD>ÿPeriodʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>systick<EFBFBD><EFBFBD> // Period 每Period时间检测一次即时间因子单位systick
// (*DetectCondition)()<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ConditionValue<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱPeriodʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // (*DetectCondition)()检测条件等于ConditionValue则条件满足检测结束否则延时Period时间继续检测
// ConditionValue <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ // ConditionValue ;条件成立的值
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>TimeOfTimeoutʱ<EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //出口参数0在TimeOfTimeout时间内检测到条件成立
// 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>TimeOfTimeoutʱ<EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>û<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // 1在TimeOfTimeout时间内没有检测到条件成立
//<EFBFBD><EFBFBD> ע<><D7A2>Editor<6F><72>Armink 2012-03-09 Company: BXXJS //备 注EditorArmink 2012-03-09 Company: BXXJS
//********************************************************************** //**********************************************************************
uint8_t AvoidTimeout(uint32_t TimeOfTimeout,uint32_t Period,uint8_t (*DetectCondition)(),uint8_t ConditionValue) uint8_t AvoidTimeout(uint32_t TimeOfTimeout,uint32_t Period,uint8_t (*DetectCondition)(),uint8_t ConditionValue)
{ {
@ -250,11 +250,11 @@ uint8_t AvoidTimeout(uint32_t TimeOfTimeout,uint32_t Period,uint8_t (*DetectCond
} }
//************************************<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>************************************** //************************************延时函数**************************************
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: void Delay(vu32 nCount) //函数定义: void Delay(vu32 nCount)
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nCount <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD> //入口参数nCount :延时函数中,循环的次数
//<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //出口参数:无
//<EFBFBD><EFBFBD> ע<><D7A2>Editor<6F><72>Armink 2011-03-18 Company: BXXJS //备 注EditorArmink 2011-03-18 Company: BXXJS
//********************************************************************************** //**********************************************************************************
void Delay(vu32 nCount) void Delay(vu32 nCount)
{ {

View File

@ -1,7 +1,7 @@
/* /*
* File : usart.c * File : usart.c
* This file is part of RT-Thread RTOS * This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006-2013, RT-Thread Development Team * COPYRIGHT (C) 2006-2021, RT-Thread Development Team
* *
* The license and distribution terms for this file may be * The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at * found in the file LICENSE in this distribution or at

View File

@ -390,7 +390,7 @@ eMBMasterFuncReadDiscreteInputs( UCHAR * pucFrame, USHORT * usLen );
eMBException eMBException
eMBMasterFuncReadWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen ); eMBMasterFuncReadWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen );
/*<EFBFBD><EFBFBD> \ingroup modbus /*! \ingroup modbus
*\brief These functions are interface for Modbus Master *\brief These functions are interface for Modbus Master
*/ */
void vMBMasterGetPDUSndBuf( UCHAR ** pucFrame ); void vMBMasterGetPDUSndBuf( UCHAR ** pucFrame );