This commit is contained in:
小马_666 2025-04-24 10:33:19 +08:00
parent caa17f68ed
commit 86f27d8e6d
9 changed files with 63 additions and 16 deletions

16
.vscode/settings.json vendored
View File

@ -18,11 +18,25 @@
}
],
"files.associations": {
"*.sqlbook": "sql",
"*.ndjson": "jsonl",
"*.dbclient-js": "javascript",
"config.h": "c",
"ch58xble_lib.h": "c",
"bsp_uart.h": "c",
"bsp_iwdg.h": "c",
"log.h": "c"
"log.h": "c",
"hal.h": "c",
"multicentral.h": "c",
"bsp_valve.h": "c",
"shell_port.h": "c",
"atomic": "c",
"cstddef": "c",
"type_traits": "c",
"gattprofile.h": "c",
"bsp_flash.h": "c",
"shell.h": "c",
"ch58x_uart.h": "c",
"bsp_tim.h": "c"
}
}

View File

@ -819,6 +819,16 @@ static void centralEventCB(gapRoleEvent_t *pEvent)
centralScanRes = 0;
tmos_stop_task(centralConnList[connItem].taskID, START_READ_RSSI_EVT);
logDebug("Discovering...\r\n");
//更新阀门状态信息
if (bt_connect_flag == 1)
{
bt_connect_flag = 0;
valve_list.valve_data[0].valve_connct_status = FALSE;
valve_list.valve_data[0].valve_switch_status = FALSE;
valve_list.valve_data[0].valve_temp = FALSE;
BSP_Bt_Valve_Resp(kValveConncetStatus, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, FALSE);//表示连接成功
}
}
break;
case GAP_LINK_PARAM_UPDATE_EVENT:
@ -1242,8 +1252,6 @@ int BSP_Master_Receive_Data(uint8_t task_id, uint8_t *data, uint16_t len)
return -5;
}
// logDebug("BT 数据帧校验通过");
// //有效数据长度
size_t data_len = (datalength + 5);
ret = data_len;

View File

@ -101,6 +101,10 @@ int main(void)
GAPRole_CentralInit();
Central_Init();
logDebug("get_ticks %d", BSP_Get_Tick());
DelayMs(2000);
logDebug("get_ticks %d", BSP_Get_Tick());
BSP_FLASH_Init();
BSP_Valve_Init();
BSP_UART1_Init(); // BT UART

View File

@ -2,7 +2,7 @@
* @Author: mbw
* @Date: 2024-12-06 16:52:29
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2025-01-02 11:22:39
* @LastEditTime: 2025-04-22 15:24:49
* @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\inc\bsp_uart.h
* @Description:
* @
@ -38,6 +38,8 @@ typedef struct __attribute__((packed))
uint8_t buf[256];
} BTFrameData;
extern uint8_t bt_connect_flag;
extern uint8_t BtRxTaskId;
void BSP_UART1_Init(void);
unsigned int BSP_Uart1_Receive_Data(void *buf, unsigned int len);
@ -52,6 +54,6 @@ unsigned int BSP_Uart3_Send_Data(const void *buf, unsigned int len);
uint8_t _CheckSum(const uint8_t *data, size_t len);
uint8_t BT_GenerateRawFrame(BTFrameData *pRawData, const uint8_t *p_src, uint8_t src_len);
extern uint8_t BtRxTaskId;
#endif // !__BSP_UART_H__

View File

@ -2,7 +2,7 @@
* @Author: mbw
* @Date: 2024-12-09 11:40:04
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2025-01-02 14:09:43
* @LastEditTime: 2025-04-22 13:19:22
* @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\inc\bsp_valve.h
* @Description:
* @
@ -33,6 +33,7 @@ typedef enum
kValveCmdRep,
kValveCmdRemAll,//移除所有的阀门地址
kValveEventStatus,//阀门状态包
kValveConncetStatus,//阀门状态包
kValveCmdMax,
} ValveCmdType;

View File

@ -98,6 +98,7 @@ void BSP_FLASH_Init(void)
if (flash_write_flag != FLASH_INFO_WRITE_FLAG_VAL) // 用以防止刷掉写入的数据
{
logDebug("flash_write_flag != FLASH_INFO_WRITE_FLAG_VAL");
logDebug("BSP_FLASH_Init");
flash_write_flag = FLASH_INFO_WRITE_FLAG_VAL;
// 擦除数据
EEPROM_ERASE(FLASH_INFO_ADDR, DATA_FLASH_PAGE_SIZE); // 擦除待写区

View File

@ -2,7 +2,7 @@
* @Author: mbw
* @Date: 2024-12-07 15:13:24
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2024-12-16 14:54:45
* @LastEditTime: 2025-04-24 09:42:42
* @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\src\bsp_tim.c
* @Description:
*
@ -11,12 +11,10 @@
#include "bsp_tim.h"
#include "HAL.h"
// tick_1ms_cnt<6E><74>SysTick_Handler()<29><>1ms +1
volatile uint32_t tick_1ms_cnt = 0;
/**
* @description: <EFBFBD><EFBFBD>SysTick<EFBFBD><EFBFBD>1ms<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @description:
* @return {uint32_t}
*/
uint32_t BSP_Get_Tick(void)
@ -27,14 +25,13 @@ uint32_t BSP_Get_Tick(void)
}
// SysTick<63>жϺ<D0B6><CFBA><EFBFBD>
__INTERRUPT
__HIGH_CODE
void SysTick_Handler()
{
static uint8_t cnt_ms = 0;
SysTick->SR = 0; // <20><><EFBFBD><EFBFBD>жϱ<D0B6>־
SysTick->SR = 0;
tick_1ms_cnt++;
cnt_ms++;

View File

@ -2,7 +2,7 @@
* @Author: mbw
* @Date: 2024-12-06 16:52:30
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2025-01-02 11:38:30
* @LastEditTime: 2025-04-22 15:16:57
* @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\src\bsp_uart.c
* @Description:
*
@ -43,6 +43,8 @@ uint8_t uart3_rx_buf[UART3_RX_BUFFER_LENGTH] = {0};
uint8_t BtRxTaskId;
uint8_t bt_connect_flag = 0;
BTFrameData bt_frame = {0};
/**
* @description: 256255
@ -310,7 +312,17 @@ uint16_t BSP_Send_Process(uint8_t *pdata)
case kCmdData:
valve_list.valve_data[0].valve_connct_status = 1;
tmos_memcpy(&valve_list.valve_data[0].valve_switch_status, &master_rx_buf[3], master_rx_buf[2]);
BSP_Bt_Valve_Resp(kValveEventStatus, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, 0);
if ((bt_connect_flag != 1) && (valve_list.valve_data[0].valve_connct_status == 1))
{
bt_connect_flag = 1;
logDebug("阀门连接成功");
BSP_Bt_Valve_Resp(kValveConncetStatus, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, TRUE);//表示连接成功
}
else
{
BSP_Bt_Valve_Resp(kValveEventStatus, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, TRUE);
}
break;
default:
logError("不支持的命令: %d", master_rx_buf[1]);
@ -415,7 +427,7 @@ void BSP_UART3_Init(void)
GPIOB_ModeCfg(UART3_TX_PIN, GPIO_ModeOut_PP_5mA); // TXD-配置推挽输出注意先让IO口输出高电平
UART3_DefInit();
UART3_BaudRateCfg(460800);
UART3_ByteTrigCfg(UART_7BYTE_TRIG);
UART3_ByteTrigCfg(UART_1BYTE_TRIG);
// 中断方式接收数据
UART3_INTCfg(ENABLE, RB_IER_LINE_STAT | RB_IER_RECV_RDY);
PFIC_EnableIRQ(UART3_IRQn);

View File

@ -2,7 +2,7 @@
* @Author: mbw
* @Date: 2024-12-09 11:40:10
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2025-01-04 13:02:54
* @LastEditTime: 2025-04-22 15:15:24
* @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\src\bsp_valve.c
* @Description:
*
@ -305,6 +305,7 @@ void BSP_Bt_Valve_Updata(void)
}
//蓝牙主机对报警器的响应函数。 state表示此对应的项目可能是执行成功与否可能是蓝牙连接状态吗具体参考对应的case
int BSP_Bt_Valve_Resp(uint8_t cmd, uint8_t id, uint8_t *mac_addr, uint8_t state)
{
uint8_t ret = 0;
@ -329,6 +330,13 @@ int BSP_Bt_Valve_Resp(uint8_t cmd, uint8_t id, uint8_t *mac_addr, uint8_t state)
tmos_memcpy(&ptr->buf[0], &valve_list.valve_data[id - 1], sizeof(struct valve_data));
BT_GenerateRawFrame(&valve_frame_data, (uint8_t *)ptr, sizeof(struct valve_data));
break;
case kValveConncetStatus:
ptr->buf[0] = id;
tmos_memcpy(&ptr->buf[1], mac_addr, 6);
ptr->buf[7] = state; //0表示断开1表示连接
logDebug("连接状态:%d", ptr->buf[7]);
BT_GenerateRawFrame(&valve_frame_data, (uint8_t *)ptr, 9);
break;
default:
break;
}