Skip to content

Commit

Permalink
feat: 增加DEFAULT宏,后续版本将用此宏对结构体长度进行优化
Browse files Browse the repository at this point in the history
  • Loading branch information
PoisonNF committed Jul 3, 2023
1 parent 8165231 commit d5dc174
Show file tree
Hide file tree
Showing 10 changed files with 178 additions and 167 deletions.
141 changes: 77 additions & 64 deletions Bsp/OCD/Src/ocd_jy901.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
* 文件历史:
* 版本号 日期 作者 说明
* 2023-06-30 鲍程璐 删除IT初始化函数,增加安装方向和解算算法的接口
* 2.6 2023-07-03 鲍程璐 删除IT初始化函数,增加安装方向和解算算法的接口
增加参数匹配函数,减少结构体长度,精简代码
* 2.5 2023-05-17 鲍程璐 数据处理函数增加返回值
Expand Down Expand Up @@ -76,6 +77,70 @@ static void S_JY901_SaveConfig(tagJY901_T *_tJY901, uint8_t _ucSet)
Drv_Uart_Transmit(&_tJY901->tUART, ucpWrite, sizeof(ucpWrite));
}

/**
* @brief JY901设置函数
* @param _tJY901-JY901句柄指针
* @param _ucpWrite-要写入的数组
* @retval Null
*/
static void S_JY901_Setting(tagJY901_T *_tJY901, uint8_t *_ucpWrite)
{
S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, _ucpWrite, sizeof(_ucpWrite));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
}

/**
* @brief JY901参数匹配函数
* @param _tJY901-JY901句柄指针
* @note 根据JY901模块指定的波特率匹配串口的波特率
* @retval Null
*/
static void S_JY901_ParamMatch(tagJY901_T *_tJY901)
{
/* 根据JY901的波特率配置选择串口的波特率 */
switch(_tJY901->tConfig.ucBaud)
{
case JY901_RXBAUD_2400:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 2400;
break;
case JY901_RXBAUD_4800:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 4800;
break;
case JY901_RXBAUD_9600:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 9600;
break;
case JY901_RXBAUD_19200:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 19200;
break;
case JY901_RXBAUD_38400:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 38400;
break;
case JY901_RXBAUD_57600:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 57600;
break;
case JY901_RXBAUD_115200:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 115200;
break;
case JY901_RXBAUD_230400:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 230400;
break;
case JY901_RXBAUD_460800:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 460800;
break;
case JY901_RXBAUD_921600:
_tJY901->tUART.tUARTHandle.Init.BaudRate = 921600;
break;
}

/* IM板默认JY901连接串口2 */
DEFAULT(_tJY901->tUART.tUARTHandle.Instance,USART2);
}

/**
* @brief JY901回传内容配置
* @param _tJY901-JY901句柄指针
Expand All @@ -88,13 +153,7 @@ void OCD_JY901_RxTypeConfig(tagJY901_T *_tJY901)
ucpWrite[3] = _tJY901->tConfig.usType >> 8;
ucpWrite[4] = _tJY901->tConfig.usType;

S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, ucpWrite, sizeof(ucpWrite));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
S_JY901_Setting(_tJY901,ucpWrite);
}

/**
Expand All @@ -109,13 +168,7 @@ void OCD_JY901_Correct(tagJY901_T *_tJY901, uint8_t _ucMode)

ucpWrite[3] = _ucMode;

S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, ucpWrite, sizeof(ucpWrite));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
S_JY901_Setting(_tJY901,ucpWrite);
}

const uint8_t ucpSleepCmd[] = {0xff, 0xaa, 0x22, 0x01, 0x00};
Expand All @@ -126,13 +179,7 @@ const uint8_t ucpSleepCmd[] = {0xff, 0xaa, 0x22, 0x01, 0x00};
*/
void OCD_JY901_Sleep(tagJY901_T *_tJY901)
{
S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, (uint8_t*)ucpSleepCmd, sizeof(ucpSleepCmd));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
S_JY901_Setting(_tJY901,(uint8_t *)ucpSleepCmd);
}

/**
Expand All @@ -146,13 +193,7 @@ void OCD_JY901_RxSpeedConfig(tagJY901_T *_tJY901)

ucpWrite[3] = _tJY901->tConfig.ucRate;

S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, ucpWrite, sizeof(ucpWrite));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
S_JY901_Setting(_tJY901,ucpWrite);
}

/**
Expand All @@ -166,13 +207,7 @@ void OCD_JY901_RxBaudConfig(tagJY901_T *_tJY901)

ucpWrite[3] = _tJY901->tConfig.ucBaud;

S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, ucpWrite, sizeof(ucpWrite));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
S_JY901_Setting(_tJY901,ucpWrite);
}

/**
Expand All @@ -186,13 +221,7 @@ void OCD_JY901_OrientConfig(tagJY901_T *_tJY901)

ucpWrite[3] = _tJY901->tConfig.ucOrient;

S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, ucpWrite, sizeof(ucpWrite));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
S_JY901_Setting(_tJY901,ucpWrite);
}

/**
Expand All @@ -206,13 +235,7 @@ void OCD_JY901_AxisConfig(tagJY901_T *_tJY901)

ucpWrite[3] = _tJY901->tConfig.ucAxis;

S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, ucpWrite, sizeof(ucpWrite));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
S_JY901_Setting(_tJY901,ucpWrite);
}

/**
Expand All @@ -227,13 +250,7 @@ void OCD_JY901_GyroAutoCorrect(tagJY901_T *_tJY901, uint8_t _ucMode)

ucpWrite[3] = _ucMode;

S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, ucpWrite, sizeof(ucpWrite));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
S_JY901_Setting(_tJY901,ucpWrite);
}

const uint8_t ucpOutputOnceCmd[] = {0xff, 0xaa, 0x03, 0x0c, 0x00};
Expand All @@ -244,13 +261,7 @@ const uint8_t ucpOutputOnceCmd[] = {0xff, 0xaa, 0x03, 0x0c, 0x00};
*/
void OCD_JY901_OutputOnce(tagJY901_T *_tJY901)
{
S_JY901_UnLock(_tJY901);
S_JY901_Delay();

Drv_Uart_Transmit(&_tJY901->tUART, (uint8_t*)ucpOutputOnceCmd, sizeof(ucpOutputOnceCmd));
S_JY901_Delay();

S_JY901_SaveConfig(_tJY901, SAVE_NOW);
S_JY901_Setting(_tJY901,(uint8_t *)ucpOutputOnceCmd);
}

/**
Expand All @@ -260,6 +271,8 @@ void OCD_JY901_OutputOnce(tagJY901_T *_tJY901)
*/
void OCD_JY901_DMAInit(tagJY901_T *_tJY901)
{
S_JY901_ParamMatch(_tJY901);

Drv_Uart_DMAInit(&_tJY901->tUART);

OCD_JY901_RxBaudConfig(_tJY901); /* 波特率设置 */
Expand Down
41 changes: 12 additions & 29 deletions Doc/工程维护记录.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
*
/***************************************************************************************************************************************************************/
* 版本号 日期 作者 说明
* 2023-6-30 鲍程璐 驱动新增、风格优化
* 2.6 2023-7-3 鲍程璐 驱动新增、风格优化
*
* 修改记录 :
* 1.更改drv_hal_pwm.c中部分函数命名。
* 2.新增GPIO状态翻转函数。
* 3.纠正句柄资源实例中DS3231的I/O配置问题,以IM板资源为准。
* 4.代码格式优化。
* 5.ocd_jy901.c删除IT初始化函数,增加安装方向和解算算法的接口。
* 5.ocd_jy901.c删除IT初始化函数,增加安装方向和解算算法的接口。增加参数匹配函数,减少结构体长度,精简代码。
* 6.增加DEFAULT宏,后续版本将用此宏对结构体长度进行优化。
*
/***************************************************************************************************************************************************************/
*
Expand Down Expand Up @@ -70,20 +71,11 @@
*
/***************************************************************************************************************************************************************/
* 版本号 日期 作者 说明
* 2.2.2 2023-4-9 鲍程璐 代码重构
* 2.2.2 2023-4-9 鲍程璐 代码重构、文本修改
*
* 修改记录 :
* 1.ocd_rm3100.c代码重构,将硬件软件SPI驱动方式统一API,使用示例已放入句柄资源示例中
*
/***************************************************************************************************************************************************************/
*
*
/***************************************************************************************************************************************************************/
* 版本号 日期 作者 说明
* 2023-4-8 鲍程璐 文本修改
*
* 修改记录 :
* 1.整理Doc中句柄资源示例.txt,排版优化,注释增加
* 1.整理Doc中句柄资源示例.txt,排版优化,注释增加
* 2.ocd_rm3100.c代码重构,将硬件软件SPI驱动方式统一API,使用示例已放入句柄资源示例中
*
/***************************************************************************************************************************************************************/
*
Expand Down Expand Up @@ -115,23 +107,14 @@
*
/***************************************************************************************************************************************************************/
* 版本号 日期 作者 说明
* 2.1 2023-3-22 鲍程璐 架构调整
*
* 修改记录 :
* 1.新增Dev层和Algo层,分别存放设备驱动和算法代码
* 2.将ps2手柄驱动移动至Dev层中,将func函数库移动至Algo层中
* 3.修改工程目录介绍,修改README
* 4.删除ADS4111驱动
*
/***************************************************************************************************************************************************************/
*
*
/***************************************************************************************************************************************************************/
* 版本号 日期 作者 说明
* 2023-3-6 鲍程璐 风格优化
* 2.1 2023-3-22 鲍程璐 架构调整、风格优化
*
* 修改记录 :
* 1.ocd_rm3100和ocd_ps2代码风格与库函数相统一
* 1.ocd_rm3100和ocd_ps2代码风格与库函数相统一
* 2.新增Dev层和Algo层,分别存放设备驱动和算法代码
* 3.将ps2手柄驱动移动至Dev层中,将func函数库移动至Algo层中
* 4.修改工程目录介绍,修改README
* 5.删除ADS4111驱动
*
/***************************************************************************************************************************************************************/
*
Expand Down
6 changes: 6 additions & 0 deletions Driver/Inc/drv_hal.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@
#endif
#define DBG_ERROR(...) Drv_HAL_PrintLog("ERROR", __FUNCTION__, __LINE__, __VA_ARGS__)

#define DEFAULT(config,value) do{ \
if(config == 0) \
config = value; \
} \
while(0)

/* Hal¿â°üº¬ */
#ifdef STM32F1_SGA_ENABLE
#include "stm32f1xx_hal.h"
Expand Down
2 changes: 1 addition & 1 deletion Driver/Inc/drv_hal_conf.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef __DRV_CONF_H_
#define __DRV_CONF_H_

#define DRIVER_VERSION "2023/6/5 V2.5"
#define DRIVER_VERSION "2023/7/3 V2.6"

/* RT-Thread开关 使用RTT时需解除注释,且在工程中导入RTT相关内核 */
//#define RTT_ENABLE
Expand Down
2 changes: 1 addition & 1 deletion Driver/Src/drv_hal_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* 文件历史:
* 版本号 日期 作者 说明
* 2023-06-15 鲍程璐 新增GPIO状态翻转函数
* 2.6 2023-06-15 鲍程璐 新增GPIO状态翻转函数
* 2.5 2023-05-29 鲍程璐 修复外部中断5-15无法使用的问题
Expand Down
2 changes: 1 addition & 1 deletion Driver/Src/drv_hal_pwm.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* 文件历史:
* 版本号 日期 作者 说明
* 2023-06-07 鲍程璐 更改部分函数命名
* 2.6 2023-06-07 鲍程璐 更改部分函数命名
* 2.3.1 2023-05-05 鲍程璐 格式优化
Expand Down
9 changes: 9 additions & 0 deletions Project/.vscode/keil-assistant.log
Original file line number Diff line number Diff line change
Expand Up @@ -416,3 +416,12 @@

[info] Log at : 2023/6/30|10:06:49|GMT+0800

[info] Log at : 2023/6/30|14:06:26|GMT+0800

[info] project closed: STM32
[info] Log at : 2023/7/2|21:57:12|GMT+0800

[info] Log at : 2023/7/2|21:57:14|GMT+0800

[info] Log at : 2023/7/3|10:04:22|GMT+0800

2 changes: 1 addition & 1 deletion Project/.vscode/uv4.log
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ compiling ocd_jy901.c...
linking...
Program Size: Code=9596 RO-data=360 RW-data=396 ZI-data=1540
".\Objects\STM32.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:05
Build Time Elapsed: 00:00:01
2 changes: 1 addition & 1 deletion Project/.vscode/uv4.log.lock
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2023/6/30 10:53:12
2023/7/2 22:15:27
Loading

0 comments on commit d5dc174

Please sign in to comment.