mirror of
https://github.com/armfly/H7-TOOL_STM32H7_App.git
synced 2024-08-09 10:05:34 +08:00
f92b5841c3
新增CX32L0系列烧录 统一参数设置方法
131 lines
3.8 KiB
C
Executable File
131 lines
3.8 KiB
C
Executable File
/*
|
|
*********************************************************************************************************
|
|
*
|
|
* 模块名称 : 消息处理模块
|
|
* 文件名称 : bsp_msg.c
|
|
* 版 本 : V1.0
|
|
* 说 明 : 消息处理机制。
|
|
*
|
|
* 修改记录 :
|
|
* 版本号 日期 作者 说明
|
|
* V1.0 2015-03-27 armfly 正式发布
|
|
*
|
|
* Copyright (C), 2014-2015, 安富莱电子 www.armfly.com
|
|
*
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#include "bsp.h"
|
|
|
|
MSG_FIFO_T g_tMsg;
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* 函 数 名: bsp_InitMsg
|
|
* 功能说明: 初始化消息缓冲区
|
|
* 形 参: 无
|
|
* 返 回 值: 无
|
|
*********************************************************************************************************
|
|
*/
|
|
void bsp_InitMsg(void)
|
|
{
|
|
bsp_ClearMsg();
|
|
}
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* 函 数 名: bsp_PutMsg
|
|
* 功能说明: 将1个消息压入消息FIFO缓冲区。
|
|
* 形 参: _MsgCode : 消息代码
|
|
* _pMsgParam : 消息参数,一般指向某个特定的结构体. 或者是0
|
|
* 返 回 值: 无
|
|
*********************************************************************************************************
|
|
*/
|
|
void bsp_PutMsg(uint32_t _MsgCode, uint32_t _MsgParam)
|
|
{
|
|
g_tMsg.Buf[g_tMsg.Write].MsgCode = _MsgCode;
|
|
g_tMsg.Buf[g_tMsg.Write].MsgParam = _MsgParam;
|
|
|
|
if (++g_tMsg.Write >= MSG_FIFO_SIZE)
|
|
{
|
|
g_tMsg.Write = 0;
|
|
}
|
|
}
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* 函 数 名: bsp_GetMsg
|
|
* 功能说明: 从消息FIFO缓冲区读取一个键值。
|
|
* 形 参: 无
|
|
* 返 回 值: 0 表示无消息; 1表示有消息
|
|
*********************************************************************************************************
|
|
*/
|
|
uint8_t bsp_GetMsg(MSG_T *_pMsg)
|
|
{
|
|
MSG_T *p;
|
|
|
|
if (g_tMsg.Read == g_tMsg.Write)
|
|
{
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
p = &g_tMsg.Buf[g_tMsg.Read];
|
|
|
|
if (++g_tMsg.Read >= MSG_FIFO_SIZE)
|
|
{
|
|
g_tMsg.Read = 0;
|
|
}
|
|
|
|
_pMsg->MsgCode = p->MsgCode;
|
|
_pMsg->MsgParam = p->MsgParam;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* 函 数 名: bsp_GetMsg2
|
|
* 功能说明: 从消息FIFO缓冲区读取一个键值。使用第2个读指针。可以2个进程同时访问消息区。
|
|
* 形 参: 无
|
|
* 返 回 值: 0 表示无消息; 1表示有消息
|
|
*********************************************************************************************************
|
|
*/
|
|
uint8_t bsp_GetMsg2(MSG_T *_pMsg)
|
|
{
|
|
MSG_T *p;
|
|
|
|
if (g_tMsg.Read2 == g_tMsg.Write)
|
|
{
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
p = &g_tMsg.Buf[g_tMsg.Read2];
|
|
|
|
if (++g_tMsg.Read2 >= MSG_FIFO_SIZE)
|
|
{
|
|
g_tMsg.Read2 = 0;
|
|
}
|
|
|
|
_pMsg->MsgCode = p->MsgCode;
|
|
_pMsg->MsgParam = p->MsgParam;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* 函 数 名: bsp_ClearMsg
|
|
* 功能说明: 清空消息FIFO缓冲区
|
|
* 形 参:无
|
|
* 返 回 值: 无
|
|
*********************************************************************************************************
|
|
*/
|
|
void bsp_ClearMsg(void)
|
|
{
|
|
g_tMsg.Read = g_tMsg.Write;
|
|
}
|
|
|
|
/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/
|