feat: 完成通信帧从机应用层模板
This commit is contained in:
@@ -71,7 +71,7 @@ int main(void)
|
|||||||
printf("start running\r\n");
|
printf("start running\r\n");
|
||||||
|
|
||||||
/** 测试完成后移除 **/
|
/** 测试完成后移除 **/
|
||||||
by_tiny_frame_parse_handle_register(test);
|
// by_tiny_frame_parse_handle_register(test);
|
||||||
by_tiny_frame_parse_start_listern();
|
by_tiny_frame_parse_start_listern();
|
||||||
|
|
||||||
by_tf_pack_frame_t frame_now;
|
by_tf_pack_frame_t frame_now;
|
||||||
@@ -87,7 +87,7 @@ int main(void)
|
|||||||
by_buzzer_run();
|
by_buzzer_run();
|
||||||
|
|
||||||
/** 测试完成后移除 **/
|
/** 测试完成后移除 **/
|
||||||
by_tiny_frame_parse_run();
|
by_tiny_frame_run();
|
||||||
// by_tiny_frame_pack_send(&frame_now);
|
// by_tiny_frame_pack_send(&frame_now);
|
||||||
system_delay_ms(10);
|
system_delay_ms(10);
|
||||||
by_tiny_frame_parse_timer_handle();
|
by_tiny_frame_parse_timer_handle();
|
||||||
|
|||||||
@@ -3,15 +3,35 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "by_tiny_frame_parse.h"
|
|
||||||
#include "crc16.h"
|
#include "crc16.h"
|
||||||
#include "zf_common_headfile.h"
|
#include "zf_common_headfile.h"
|
||||||
|
#include "by_tiny_frame_config.h"
|
||||||
|
#include "by_tiny_frame_parse.h"
|
||||||
|
#include "by_tiny_frame_master_read.h"
|
||||||
|
#include "by_tiny_frame_master_write.h"
|
||||||
|
#include "by_tiny_frame_slave_read_write.h"
|
||||||
|
|
||||||
void by_tiny_frame_init(void)
|
void by_tiny_frame_init(void)
|
||||||
{
|
{
|
||||||
/*** 初始化相关外设 ***/
|
/*** 初始化相关外设 ***/
|
||||||
uart_init(BY_TF_UART_INDEX, BY_TF_UART_BAUDRATE, BY_TF_UART_TX_PIN, BY_TF_UART_RX_PIN);
|
uart_init(BY_TF_UART_INDEX, BY_TF_UART_BAUDRATE, BY_TF_UART_TX_PIN, BY_TF_UART_RX_PIN);
|
||||||
uart_rx_interrupt(BY_TF_UART_INDEX, ENABLE);
|
uart_rx_interrupt(BY_TF_UART_INDEX, ENABLE);
|
||||||
|
|
||||||
by_tiny_frame_parse_init();
|
by_tiny_frame_parse_init();
|
||||||
|
|
||||||
|
#if defined(BY_TF_DEVICE_SLAVE)
|
||||||
|
by_tiny_frame_parse_handle_register(by_tiny_frame_read_write_handle);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void by_tiny_frame_run(void)
|
||||||
|
{
|
||||||
|
by_tiny_frame_parse_run();
|
||||||
|
|
||||||
|
#if defined(BY_TF_DEVICE_MASTER)
|
||||||
|
by_tiny_frame_read_run();
|
||||||
|
by_tiny_frame_write_run();
|
||||||
|
#elif defined(BY_TF_DEVICE_SLAVE)
|
||||||
|
by_tiny_frame_read_write_run();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
@@ -4,5 +4,6 @@
|
|||||||
#include "by_tiny_frame_config.h"
|
#include "by_tiny_frame_config.h"
|
||||||
|
|
||||||
extern void by_tiny_frame_init(void);
|
extern void by_tiny_frame_init(void);
|
||||||
|
void by_tiny_frame_run(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#define BY_TF_PARSE_BUFFER_SIZE (50)
|
#define BY_TF_PARSE_BUFFER_SIZE (50)
|
||||||
|
|
||||||
// 注释此项则为主机,否则为从机
|
// 注释此项则为主机,否则为从机
|
||||||
// #define BY_TF_DEVICE_SLAVE
|
#define BY_TF_DEVICE_SLAVE
|
||||||
|
|
||||||
/********** 从机模式配置选项 **********/
|
/********** 从机模式配置选项 **********/
|
||||||
#if defined(BY_TF_DEVICE_SLAVE)
|
#if defined(BY_TF_DEVICE_SLAVE)
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#include "by_tiny_frame_master_read.h"
|
||||||
|
|
||||||
|
void by_tiny_frame_read_run(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -5,7 +5,9 @@
|
|||||||
|
|
||||||
#if defined(BY_TF_DEVICE_MASTER)
|
#if defined(BY_TF_DEVICE_MASTER)
|
||||||
|
|
||||||
#define BY_TINY_FRAME_WRITE_CMD_CODE (0x03)
|
#define BY_TINY_FRAME_READ_CMD_CODE (0x03)
|
||||||
|
|
||||||
|
extern void by_tiny_frame_read_run(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,2 +1,5 @@
|
|||||||
#include "by_tiny_frame_write.h"
|
#include "by_tiny_frame_master_write.h"
|
||||||
|
|
||||||
|
void by_tiny_frame_write_run(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -10,9 +10,8 @@
|
|||||||
|
|
||||||
#define BY_TINY_FRAME_WRITE_CMD_CODE (0x06)
|
#define BY_TINY_FRAME_WRITE_CMD_CODE (0x06)
|
||||||
|
|
||||||
|
|
||||||
extern void by_tiny_frame_write(uint8_t slave_id, uint16_t reg_addr, uint32_t data);
|
extern void by_tiny_frame_write(uint8_t slave_id, uint16_t reg_addr, uint32_t data);
|
||||||
|
extern void by_tiny_frame_write_run(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,2 +1,44 @@
|
|||||||
#include "by_tiny_frame_slave_read_write.h"
|
#include "by_tiny_frame_slave_read_write.h"
|
||||||
|
|
||||||
|
#include "by_tiny_frame_parse.h"
|
||||||
|
#include "by_tiny_frame_pack.h"
|
||||||
|
|
||||||
|
void by_tiny_frame_read_write_run(void)
|
||||||
|
{
|
||||||
|
// empty
|
||||||
|
}
|
||||||
|
|
||||||
|
void by_tiny_frame_read_write_handle(by_tf_parse_frame_t frame_s, uint8_t status)
|
||||||
|
{
|
||||||
|
by_tf_pack_frame_t frame_pack_s;
|
||||||
|
|
||||||
|
frame_pack_s.slave_id = BY_TF_DEVICE_SLAVE_ADDRESS;
|
||||||
|
frame_pack_s.cmd = frame_s.cmd;
|
||||||
|
frame_pack_s.reg_addr = frame_s.reg_addr;
|
||||||
|
|
||||||
|
if (status) {
|
||||||
|
// 接收出错,一般为 CRC 校验错误
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (frame_s.cmd) {
|
||||||
|
case 0x03:
|
||||||
|
// 添加查询接口,操作完成后应答
|
||||||
|
frame_pack_s.data = 0XFFFFFFFF; // 示例
|
||||||
|
by_tiny_frame_pack_send(&frame_pack_s);
|
||||||
|
break;
|
||||||
|
case 0x06:
|
||||||
|
// 添加写入接口,操作完成后应答
|
||||||
|
frame_pack_s.data = frame_s.data;
|
||||||
|
by_tiny_frame_pack_send(&frame_pack_s);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (BY_TF_DEBUG)
|
||||||
|
printf("****** EXECUTE CMD SUCCESSFUL ******\r\n");
|
||||||
|
printf("Device ID: 0x%0.2X\r\n", BY_TF_DEVICE_SLAVE_ADDRESS);
|
||||||
|
printf("--cmd: %0.2X\n--reg_addr: %0.4X\n--data: %0.8X\r\n", frame_s.cmd, frame_s.reg_addr, frame_s.data);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,8 +5,13 @@
|
|||||||
|
|
||||||
#if defined(BY_TF_DEVICE_SLAVE)
|
#if defined(BY_TF_DEVICE_SLAVE)
|
||||||
|
|
||||||
#define BY_TINY_FRAME_WRITE_CMD_CODE (0x03)
|
#include "by_tiny_frame_parse.h"
|
||||||
|
|
||||||
|
#define BY_TINY_FRAME_READ_CMD_CODE (0x03)
|
||||||
#define BY_TINY_FRAME_WRITE_CMD_CODE (0x06)
|
#define BY_TINY_FRAME_WRITE_CMD_CODE (0x06)
|
||||||
|
|
||||||
|
extern void by_tiny_frame_read_write_run(void);
|
||||||
|
extern void by_tiny_frame_read_write_handle(by_tf_parse_frame_t frame_s, uint8_t status);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user