增加CH9141蓝牙转串口模块的驱动
    添加无线类型的枚举变量
    修改 删除临时文件.bat 执行完操作后自动关闭窗口
    修改 删除临时文件.bat 避免删除新版本所需文件
    修改工程项目文件,以支持新版本编译
This commit is contained in:
SEEKFREE_Kang
2021-11-16 12:32:52 +08:00
parent e14501ba45
commit bc4ba155ee
209 changed files with 43716 additions and 1691 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -5,6 +5,18 @@
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.infineon.aurix.buildsystem.builders.booster</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.infineon.aurix.buildsystem.builders.autodiscovery</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>

View File

@@ -0,0 +1,10 @@
AURIX-LIBRARY-PATH=Libraries/iLLD\#Libraries/Infra\#Libraries/Service
DEVICE-ID=TC26B
DEVICE-ID-FULL=TC26xD_B-Step
ILLD-SET=full
IncludesAutodiscovery=true
LIBRARIES-ROOT-PATH=Libraries
NEVER-EXCLUDE-FROM-BUILD=/Libraries/iLLD/TC26B/Tricore/Cpu/CStart\#/Libraries/iLLD/TC26B/Tricore/Cpu/Trap\#/Configurations\#/Configurations/Debug
PROJECT-VERSION=1.0
aurixDevice=TC26xD_B-Step
eclipse.preferences.version=1

View File

@@ -1,3 +1,10 @@
V1.2.0
<20><><EFBFBD><EFBFBD>CH9141<34><31><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ö<EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
<20>޸<EFBFBD> ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD>.bat ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>رմ<D8B1><D5B4><EFBFBD>
<20>޸<EFBFBD> ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD>.bat <20><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>°汾<C2B0><E6B1BE><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20>޸Ĺ<DEB8><C4B9><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD>°汾<C2B0><E6B1BE><EFBFBD><EFBFBD>
V1.1.10
<20>޸<EFBFBD>ͨ<EFBFBD><CDA8>#pragma section all "cpux_dsram"ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʧЧ<CAA7><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -27,6 +27,8 @@
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
WIRELESS_TYPE_enum wireless_type;//<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IFX_ALIGN(4) IfxCpu_syncEvent g_cpuSyncEvent = 0;//<2F>¼<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>

View File

@@ -113,6 +113,12 @@ typedef enum //ö
CAMERA_COLOR, //<2F><>ͫ
}CAMERA_TYPE_enum;
typedef enum //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
{
WIRELESS_SI24R1 = 1, //<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>
WIRELESS_CH9141, //<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>
}WIRELESS_TYPE_enum;
#include <math.h>
#include <string.h>
#include "IfxCpu.h"
@@ -120,6 +126,8 @@ typedef enum //ö
extern CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
extern uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
extern WIRELESS_TYPE_enum wireless_type;
extern IfxCpu_syncEvent g_cpuSyncEvent;
void get_clk(void);

View File

@@ -65,6 +65,7 @@
#include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h"
#include "SEEKFREE_BLUETOOTH_CH9141.h"
#endif

View File

@@ -0,0 +1,509 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2021,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA>һȺ<D2BB><C8BA>179029047(<28><><EFBFBD><EFBFBD>) <20><>Ⱥ<EFBFBD><C8BA>244861897
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file <09><><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software IAR 8.3 or MDK 5.33
* @Taobao https://seekfree.taobao.com/
* @date 2021-08-27
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
<20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>Ƭ<EFBFBD><C6AC>
RX <20>鿴SEEKFREE_BLUETOOTH_CH9141.h<>ļ<EFBFBD><C4BC>е<EFBFBD>BLUETOOTH_CH9141_UART_TX<54><EFBFBD><EAB6A8>
TX <20>鿴SEEKFREE_BLUETOOTH_CH9141.h<>ļ<EFBFBD><C4BC>е<EFBFBD>BLUETOOTH_CH9141_UART_RX<52><EFBFBD><EAB6A8>
RTS <20>鿴SEEKFREE_BLUETOOTH_CH9141.h<>ļ<EFBFBD><C4BC>е<EFBFBD>BLUETOOTH_CH9141_RTS_PIN<49><EFBFBD><EAB6A8>
CTS <20><><EFBFBD><EFBFBD>
CMD <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------------------------------------
********************************************************************************************************************/
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_uart.h"
#include "zf_assert.h"
#include "SEEKFREE_BLUETOOTH_CH9141.h"
uint8 uart_flag;
uint8 uart_data;
vuint8 at_mode = 0; //0:<3A><><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>ģʽ 1:ATģʽ 2:ģ<>鸴λ<E9B8B4><CEBB>
vuint8 at_mode_num; //atģʽʱ<CABD><CAB1><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD>ݽ<EFBFBD><DDBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
vuint8 at_mode_data[30]; //<2F><><EFBFBD><EFBFBD>at<61><74><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>
vuint8 at_mode_cmd_flag; //OKӦ<4B><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ճɹ<D5B3><C9B9>ı<EFBFBD>־λ
uint8 mac_address[17]; //<2F><><EFBFBD><EFBFBD>mac<61><63>ַ
uint8 bluetooth_ch9141_rx_buffer;
void bluetooth_ch9141_check_response(void);
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
// @param NULL
// @return void
// @since v1.0
// Sample usage:
// @note <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>ISR<53>ļ<EFBFBD> <20><><EFBFBD><EFBFBD>8<EFBFBD>жϳ<D0B6><CFB3>򱻵<EFBFBD><F2B1BBB5><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_uart_callback()
{
while(uart_query(BLUETOOTH_CH9141_UART, &bluetooth_ch9141_rx_buffer))
{
if(1 == at_mode)
{
//<2F><><EFBFBD><EFBFBD>ATģʽ <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD> <20>˴<EFBFBD>if<69><66><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ҫ<EFBFBD>Ķ<EFBFBD>
at_mode_data[at_mode_num++] = bluetooth_ch9141_rx_buffer;
bluetooth_ch9141_check_response();
}
else if(2 == at_mode)
{
//ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>λ<EFBFBD><CEBB> <20>˴<EFBFBD>if<69><66><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ҫ<EFBFBD>Ķ<EFBFBD>
at_mode_num++;
}
else
{
//͸<><CDB8>ģʽ <20>û<EFBFBD><C3BB>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>
//<2F>ӵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽں<D6BD><DABA><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ڴ˴<DAB4><CBB4><EFBFBD>ȡbluetooth_ch9141_rx_buffer<65><72><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ߴ<EFBFBD><DFB4>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ձ<EFBFBD>־
uart_flag = 1;
uart_data = bluetooth_ch9141_rx_buffer;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OKӦ<4B><D3A6><EFBFBD>ź<EFBFBD>
// @param NULL
// @return void
// @since v1.0
// Sample usage:
// @note <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_check_response(void)
{
if(4 <= at_mode_num)
{
if(0 == strncmp("OK\r\n", (int8 *)&at_mode_data[at_mode_num-4], 4))
{
at_mode_cmd_flag = 1;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E9B7A2>һ<EFBFBD><D2BB>û<EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD>
// @param *str <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @return void
// @since v1.0
// Sample usage:
// @note <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_send_at_command(const int8 *str)
{
at_mode_num = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uart_putstr(BLUETOOTH_CH9141_UART, str);
uart_putstr(BLUETOOTH_CH9141_UART, "\r\n");
//<2F>ȴ<EFBFBD><C8B4>յ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD>
while(!at_mode_cmd_flag);
at_mode_cmd_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E9B7A2>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD>
// @param *cmd <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param *data <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage:
// @note <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_send_at_command_parameter(const int8 *cmd, const int8 *data)
{
at_mode_num = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uart_putstr(BLUETOOTH_CH9141_UART, "AT+");
uart_putstr(BLUETOOTH_CH9141_UART, cmd);
uart_putstr(BLUETOOTH_CH9141_UART, "=");
uart_putstr(BLUETOOTH_CH9141_UART, data);
uart_putstr(BLUETOOTH_CH9141_UART, "\r\n");
//<2F>ȴ<EFBFBD><C8B4>յ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD>
while(!at_mode_cmd_flag);
at_mode_cmd_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ATģʽ
// @param NULL
// @return void
// @since v1.0
// Sample usage:
// @note
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_enter_at_mode(void)
{
systick_delay_ms(STM0, 550); //<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>ATģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>Ҫ<EFBFBD><D2AA>֤ģ<D6A4><C4A3><EFBFBD><EFBFBD>550ms<6D><73>û<EFBFBD>н<EFBFBD><D0BD>չ<EFBFBD><D5B9>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>
at_mode = 1; //<2F><><EFBFBD><EFBFBD>ATģʽ
bluetooth_ch9141_send_at_command("AT...");
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>˳<EFBFBD>ATģʽ
// @param NULL
// @return void
// @since v1.0
// Sample usage:
// @note
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_exit_at_mode(void)
{
bluetooth_ch9141_send_at_command("AT+EXIT");
at_mode = 0; //<2F><><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>ģʽ
systick_delay_ms(STM0, 300); //<2F>ȴ<EFBFBD><C8B4>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>ATģʽ
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD>鸴λ
// @param NULL
// @return void
// @since v1.0
// Sample usage:
// @note
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_reset(void)
{
bluetooth_ch9141_send_at_command("AT+RESET");
at_mode = 2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>
at_mode_num = 0;
while(7 > at_mode_num); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD>λ
at_mode = 0; //<2F><>λ֮<CEBB><D6AE>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>ģʽ
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>MAC<41><43>ַ
// @param NULL
// @return void
// @since v1.0
// Sample usage:
// @note <20><><EFBFBD>ô˺<C3B4><CBBA><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>bluetooth_ch9141_enter_at_mode<64><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CMD<4D><44><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ATģʽ
// <20><>Ҫ<EFBFBD>ر<EFBFBD>ע<EFBFBD><D7A2>bluetooth_ch9141_enter_at_mode<64><65><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>500ms<6D><73><EFBFBD><EFBFBD>ʱ
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_get_mac_address(void)
{
bluetooth_ch9141_send_at_command("AT+MAC?");
//mac<61><63>ַΪС<CEAA>θ<EFBFBD>ʽ<EFBFBD><CABD>mac_address[0]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mac<61><63>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>λ
memcpy(mac_address, (uint8 *)at_mode_data, 17);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7>͹<EFBFBD><CDB9><EFBFBD>
// @param tx_power <20><><EFBFBD>÷<EFBFBD><C3B7>͹<EFBFBD><CDB9>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>鿴CH9141_TX_POWEER_enumö<6D>ٳ<EFBFBD>Ա
// @return void
// @since v1.0
// Sample usage:
// @note
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_set_tx_power(CH9141_TX_POWEER_enum tx_power)
{
int8 tx_power_data;
tx_power_data = (uint8)tx_power + '0';
bluetooth_ch9141_send_at_command_parameter("TPL", &tx_power_data);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
// @param mode ģʽ<C4A3><CABD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>鿴CH9141_MODE_enumö<6D>ٳ<EFBFBD>Ա
// @return void
// @since v1.0
// Sample usage:
// @note
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_set_mode(CH9141_MODE_enum mode)
{
int8 mode_data;
mode_data = (uint8)mode + '0';
bluetooth_ch9141_send_at_command_parameter("BLEMODE", &mode_data);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ȡ״̬
// @param mode ģʽ<C4A3><CABD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>鿴CH9141_MODE_enumö<6D>ٳ<EFBFBD>Ա
// @return CH9141_STATUS_enum <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>Ϣ
// @since v1.0
// Sample usage:
// @note
//-------------------------------------------------------------------------------------------------------------------
CH9141_STATUS_enum bluetooth_ch9141_get_status(CH9141_MODE_enum mode)
{
CH9141_STATUS_enum ch9141_status;
int8 mode_data;
mode_data = (uint8)mode + '0';
bluetooth_ch9141_send_at_command_parameter("BLEMODE", &mode_data);
bluetooth_ch9141_send_at_command("AT+BLESTA?");
ch9141_status = (at_mode_data[0] - '0') * 10 + (at_mode_data[1] - '0');
if(SLAVE_MODE == mode)
{
ch9141_status += SLAVE_NO_INIT;
}
return ch9141_status;
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
// @param *str <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage:
// @note <20><><EFBFBD>Ƴ<EFBFBD><C6B3>Ȳ<EFBFBD><C8B2>ܳ<EFBFBD><DCB3><EFBFBD>18<31><38><EFBFBD>ַ<EFBFBD> <20><>ֻ<EFBFBD><D6BB>ΪӢ<CEAA><D3A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_set_name(const int8 *str)
{
bluetooth_ch9141_send_at_command_parameter("NAME", str);
bluetooth_ch9141_send_at_command_parameter("PNAME", str);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param enable ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD>룬1<EBA3AC><31>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1>
// @param *password <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><><EFBFBD><EFBFBD>Ϊ6<CEAA><36><EFBFBD>ַ<EFBFBD>
// @return void
// @since v1.0
// Sample usage:
// @note
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_set_password(uint8 enable, const int8 *password)
{
if(0 == enable)
{
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
bluetooth_ch9141_send_at_command_parameter("PASEN", "OFF");
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EBB2A2><CAB9>
bluetooth_ch9141_send_at_command_parameter("PASEN", "ON");
bluetooth_ch9141_send_at_command_parameter("PASS", password);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ָ<EFBFBD><D6B8>MAC<41><43>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param *mac_and_password <20><>Ҫ<EFBFBD><D2AA><EFBFBD>ӵ<EFBFBD><D3B5>豸mac<61><63>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage:
// @note bluetooth_ch9141_connect("58:B7:33:E4:C2:84,000000");
// 58:B7:33:E4:C2:84Ϊmac<61><63>ַ ,Ϊ<>ָ<EFBFBD><D6B8><EFBFBD> 000000Ϊ<30>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ===================<3D>ر<EFBFBD>ע<EFBFBD><D7A2>==================
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mac<61><63>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뽫mac<61><63><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
// <20><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><E9BFB4><EFBFBD><EFBFBD>mac<61><63>ַΪ61:62:63:64:65:66<36><36><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD><D3A6>д
// bluetooth_ch9141_connect("66:65:64:63:62:61,000000");
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_connect(const int8 *mac_and_password)
{
bluetooth_ch9141_send_at_command_parameter("CONN", mac_and_password);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>úú<C3BA><C3BA><EFBFBD>ÿ<EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>
// @param *mac_and_password <20><>Ҫ<EFBFBD><D2AA><EFBFBD>ӵ<EFBFBD><D3B5>豸mac<61><63>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage:
// @note bluetooth_ch9141_default_connect("58:B7:33:E4:C2:84,000000");
// 58:B7:33:E4:C2:84Ϊmac<61><63>ַ ,Ϊ<>ָ<EFBFBD><D6B8><EFBFBD> 000000Ϊ<30>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ===================<3D>ر<EFBFBD>ע<EFBFBD><D7A2>==================
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ֻ<EFBFBD><D6BB>鿴CH9141<34><31>mac<61><63>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>CH9141<34><31><EFBFBD><EFBFBD>Ϊ<EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
// <20><>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뽫mac<61><63><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
// <20><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><E9BFB4><EFBFBD><EFBFBD>mac<61><63>ַΪ61:62:63:64:65:67<36><37><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD><D3A6>д
// bluetooth_ch9141_default_connect("67:65:64:63:62:61,000000");
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_default_connect(const int8 *mac_and_password)
{
bluetooth_ch9141_send_at_command_parameter("CONADD", mac_and_password);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ȡrssi(<28>ź<EFBFBD>ǿ<EFBFBD><C7BF>)
// @param void
// @return int8 <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ǿ<EFBFBD><C7BF>0<EFBFBD><30>-127
// @since v1.0
// Sample usage:
// @note <20><><EFBFBD>ô˺<C3B4><CBBA><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>bluetooth_ch9141_enter_at_mode<64><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CMD<4D><44><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ATģʽ
// <20><>Ҫ<EFBFBD>ر<EFBFBD>ע<EFBFBD><D7A2>bluetooth_ch9141_enter_at_mode<64><65><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>500ms<6D><73><EFBFBD><EFBFBD>ʱ
//-------------------------------------------------------------------------------------------------------------------
int16 bluetooth_ch9141_get_rssi(void)
{
uint8 i;
size_t length;
int16 rssi;
bluetooth_ch9141_send_at_command_parameter("RSSI", "ON,0");
length = strlen((int8 *)at_mode_data);
length -= 12;//<2F><><EFBFBD><EFBFBD>RSSI <20>ж<EFBFBD><D0B6><EFBFBD>λ
rssi = 0;
for(i=0; i<length; i++)
{
rssi = rssi*10 + (at_mode_data[0] - '0');
}
return -rssi;
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
// @param buff <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
// @param len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
// @return uint32 ʣ<><CAA3>δ<EFBFBD><CEB4><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
// @since v1.0
// Sample usage:
// @note
//-------------------------------------------------------------------------------------------------------------------
uint32 bluetooth_ch9141_send_buff(uint8 *buff, uint32 len)
{
while(len)
{
//<2F><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> RTSΪ<53>߱<EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//RTSΪ<53>ߴ<EFBFBD><DFB4><EFBFBD><EFBFBD><EFBFBD>ʽһ<CABD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⵽RTSΪ<53><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2>ټ<EFBFBD><D9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵȴ<D6B5>
if(gpio_get(BLUETOOTH_CH9141_RTS_PIN))
{
break;
}
//RTSΪ<53>ߴ<EFBFBD><DFB4><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⵽RTSΪ<53><CEAA><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>RTSΪ<53><CEAA>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//while(gpio_get(BLUETOOTH_CH9141_RTS_PIN)); //<2F><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uart_putchar(BLUETOOTH_CH9141_UART, *buff);
buff++;
len--;
}
return len;
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// @param mode <20><><EFBFBD><EFBFBD>ģʽ MASTER_MODE(<28><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD>SLAVE_MODE(<28>ӻ<EFBFBD>)
// @return void
// @since v1.0
// Sample usage:
// @note
// <09><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mac<61><63>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뽫mac<61><63><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
// <09><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><E9BFB4><EFBFBD><EFBFBD>mac<61><63>ַΪ61:62:63:64:65:66<36><36><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD><D3A6>д
// bluetooth_ch9141_connect("66:65:64:63:62:61,000000");
// 58:B7:33:E4:C2:84Ϊmac<61><63>ַ ,Ϊ<>ָ<EFBFBD><D6B8><EFBFBD> 000000Ϊ<30>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <09>ӻ<EFBFBD>MAC<41><43>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// int8 salve_mac_password[] = "80:90:2C:E4:C2:84,000000";
//-------------------------------------------------------------------------------------------------------------------
void bluetooth_ch9141_init(CH9141_MODE_enum mode, int8 *salve_mac_password)
{
int8 *str = salve_mac_password;
if(str != NULL)
{
while(*str)
{
if(*str++ == 0x20)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>пո<D0BF>
ZF_ASSERT(0);
return;
}
}
}
boolean irq_status;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD><EFBFBD>Ϊ115200<30><30>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>޸<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
wireless_type = WIRELESS_CH9141;
gpio_init(BLUETOOTH_CH9141_RTS_PIN, GPI, 0, PULLDOWN);
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uart_init (BLUETOOTH_CH9141_UART, BLUETOOTH_CH9141_UART_BAUD, BLUETOOTH_CH9141_UART_TX, BLUETOOTH_CH9141_UART_RX); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
irq_status = areInterruptsEnabled();
enableInterrupts();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ӳɹ<D3B3><C9B9>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ϊ<EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳɹ<DCB3><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ӳɹ<D3B3><C9B9>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ϊ<EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳɹ<DCB3><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>ϵ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ôӻ<C3B4><D3BB><EFBFBD><EFBFBD>ϵ磬Ȼ<E7A3AC><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>
if(MASTER_MODE == mode)
{
//1.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>mac<61><63>ַ<EFBFBD>Ĵӻ<C4B4><D3BB>
bluetooth_ch9141_enter_at_mode(); //<2F><><EFBFBD><EFBFBD>ATģʽ
bluetooth_ch9141_set_mode(mode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
bluetooth_ch9141_get_mac_address();//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>MAC<41><43>ַ
bluetooth_ch9141_reset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD>Ҫ<EFBFBD><D2AA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>òŻ<C3B2><C5BB><EFBFBD>Ч
bluetooth_ch9141_enter_at_mode(); //<2F><><EFBFBD><EFBFBD>ATģʽ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ֮<CABD><D6AE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>λȻ<CEBB><C8BB><EFBFBD>ٴν<D9B4><CEBD><EFBFBD>ATģʽ<C4A3><CABD><EFBFBD>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD>ò<EFBFBD><C3B2>ɹ<EFBFBD>
bluetooth_ch9141_set_tx_power(TX_POWER_4DB);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD>
//===================<3D>ر<EFBFBD>ע<EFBFBD><D7A2>==================
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mac<61><63>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뽫mac<61><63><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><E9BFB4><EFBFBD><EFBFBD>mac<61><63>ַΪ61:62:63:64:65:66<36><36><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD><D3A6>д
//bluetooth_ch9141_connect("66:65:64:63:62:61,000000");
//58:B7:33:E4:C2:84Ϊmac<61><63>ַ ,Ϊ<>ָ<EFBFBD><D6B8><EFBFBD> 000000Ϊ<30>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>ӻ<EFBFBD>MAC<41><43>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//int8 salve_mac_password[] = "80:90:2C:E4:C2:84,000000";
bluetooth_ch9141_default_connect(salve_mac_password); //<2F><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>´β<C2B4><CEB2><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>Ӵӻ<D3B4>
bluetooth_ch9141_connect(salve_mac_password); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĴӻ<C4B4><D3BB><EFBFBD>ַ
//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ӳɹ<D3B3>
while(MASTER_CONNECTED != bluetooth_ch9141_get_status(mode));
bluetooth_ch9141_exit_at_mode(); //<2F>˳<EFBFBD>ATģʽ
}
else if(SLAVE_MODE == mode)
{
//2.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
bluetooth_ch9141_enter_at_mode(); //<2F><><EFBFBD><EFBFBD>ATģʽ
bluetooth_ch9141_set_mode(mode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
bluetooth_ch9141_get_mac_address();//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>MAC<41><43>ַ
bluetooth_ch9141_reset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD>Ҫ<EFBFBD><D2AA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>òŻ<C3B2><C5BB><EFBFBD>Ч
bluetooth_ch9141_enter_at_mode(); //<2F><><EFBFBD><EFBFBD>ATģʽ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ֮<CABD><D6AE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>λȻ<CEBB><C8BB><EFBFBD>ٴν<D9B4><CEBD><EFBFBD>ATģʽ<C4A3><CABD><EFBFBD>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD>ò<EFBFBD><C3B2>ɹ<EFBFBD>
bluetooth_ch9141_set_tx_power(TX_POWER_4DB);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD>
bluetooth_ch9141_set_name("ble");
bluetooth_ch9141_set_password(1, "000000"); //000000Ϊ<30><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>޸<EFBFBD>
bluetooth_ch9141_reset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD>Ҫ<EFBFBD><D2AA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>òŻ<C3B2><C5BB><EFBFBD>Ч
bluetooth_ch9141_enter_at_mode(); //<2F><><EFBFBD><EFBFBD>ATģʽ
//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ӳɹ<D3B3>
while(SLAVE_CONNECTED != bluetooth_ch9141_get_status(mode));
bluetooth_ch9141_exit_at_mode(); //<2F>˳<EFBFBD>ATģʽ
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ǿ<EFBFBD>ȿ<EFBFBD><C8BF>԰<EFBFBD><D4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//bluetooth_ch9141_enter_at_mode();
//int16 rssi = bluetooth_ch9141_get_rssi();
disableInterrupts();
restoreInterrupts(irq_status);
}

View File

@@ -0,0 +1,99 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2021,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA>һȺ<D2BB><C8BA>179029047(<28><><EFBFBD><EFBFBD>) <20><>Ⱥ<EFBFBD><C8BA>244861897
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file <09><><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software IAR 8.3 or MDK 5.33
* @Taobao https://seekfree.taobao.com/
* @date 2021-08-27
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
<20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>Ƭ<EFBFBD><C6AC>
RX <20>鿴SEEKFREE_BLUETOOTH_CH9141.h<>ļ<EFBFBD><C4BC>е<EFBFBD>BLUETOOTH_CH9141_UART_TX<54><EFBFBD><EAB6A8>
TX <20>鿴SEEKFREE_BLUETOOTH_CH9141.h<>ļ<EFBFBD><C4BC>е<EFBFBD>BLUETOOTH_CH9141_UART_RX<52><EFBFBD><EAB6A8>
RTS <20>鿴SEEKFREE_BLUETOOTH_CH9141.h<>ļ<EFBFBD><C4BC>е<EFBFBD>BLUETOOTH_CH9141_RTS_PIN<49><EFBFBD><EAB6A8>
CTS <20><><EFBFBD><EFBFBD>
CMD <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------------------------------------
********************************************************************************************************************/
#ifndef SEEKFREE_BLUETOOTH_CH9141_H
#define SEEKFREE_BLUETOOTH_CH9141_H
#include "common.h"
#define BLUETOOTH_CH9141_UART UART_2 //<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ʹ<EFBFBD>õ<EFBFBD><C3B5>Ĵ<EFBFBD><C4B4><EFBFBD>
#define BLUETOOTH_CH9141_UART_TX UART2_TX_P10_5 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RX<52><58><EFBFBD>ӵ<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>D16<31><36><EFBFBD><EFBFBD>
#define BLUETOOTH_CH9141_UART_RX UART2_RX_P10_6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TX<54><58><EFBFBD>ӵ<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>D17<31><37><EFBFBD><EFBFBD>
#define BLUETOOTH_CH9141_UART_BAUD 115200
#define BLUETOOTH_CH9141_RTS_PIN P10_2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ָʾ<D6B8><CABE>ǰģ<C7B0><C4A3><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum
{
TX_POWER_0DB = 0, //0DB
TX_POWER_1DB, //1DB
TX_POWER_2DB, //2DB
TX_POWER_3DB, //3DB
TX_POWER_4DB, //4DB
TX_POWER_MINUS_8DB, //-8DB
TX_POWER_MINUS_14DB,//-14DB
TX_POWER_MINUS_20DB,//-20DB
}CH9141_TX_POWEER_enum;
typedef enum
{
MASTER_NO_INIT = 0, //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>ʼ<EFBFBD><CABC>
MASTER_SCANNING, //<2F><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD>
MASTER_CONNECTING, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MASTER_CONNECTED, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MASTER_DISCONNECTED, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӶϿ<D3B6>
SLAVE_NO_INIT, //<2F>ӻ<EFBFBD>δ<EFBFBD><CEB4>ʼ<EFBFBD><CABC>
SLAVE_OK_INIT, //<2F>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>ɳ<EFBFBD>ʼ<EFBFBD><CABC>
SLAVE_BROADCAST, //<2F>ӻ<EFBFBD><D3BB><EFBFBD><E3B2A5>
SLAVE_BROADCAST_READY, //<2F>ӻ<EFBFBD>׼<EFBFBD><D7BC><EFBFBD>
SLAVE_CONNECT_TIMEOUT, //<2F>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>ӳ<EFBFBD>ʱ
SLAVE_CONNECTED, //<2F>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SLAVE_ERROR, //<2F>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>
}CH9141_STATUS_enum;
typedef enum
{
BROADCAST_MODE = 0, //<2F>㲥ģʽ
MASTER_MODE, //<2F><><EFBFBD><EFBFBD>ģʽ
SLAVE_MODE, //<2F>ӻ<EFBFBD>ģʽ
}CH9141_MODE_enum;
extern uint8 uart_flag;
extern uint8 uart_data;
void bluetooth_ch9141_uart_callback(void);
void bluetooth_ch9141_enter_at_mode(void);
void bluetooth_ch9141_exit_at_mode(void);
void bluetooth_ch9141_reset(void);
void bluetooth_ch9141_get_mac_address(void);
int16 bluetooth_ch9141_get_rssi(void);
uint32 bluetooth_ch9141_send_buff(uint8 *buff, uint32 len);
void bluetooth_ch9141_init(CH9141_MODE_enum mode, int8 *salve_mac_password);
#endif

View File

@@ -33,9 +33,12 @@
#include "SEEKFREE_WIRELESS.h"
uint8 wireless_send_buffer[WIRELESS_BUFFER_SIZE];
uint32 wireless_rx_index = 0;
vuint8 wireless_auto_baud_num;
vuint8 wireless_auto_baud_flag = 0;
vuint8 wireless_auto_baud_data[3] = {0x00, 0x01, 0x03};
uint8 wireless_rx_buffer;
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
@@ -47,8 +50,23 @@ uint8 wireless_rx_buffer;
//-------------------------------------------------------------------------------------------------------------------
void wireless_uart_callback(void)
{
//<2F><>ȡ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while(uart_query(WIRELESS_UART, &wireless_rx_buffer));
//<2F><>ȡ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(wireless_auto_baud_flag == 1 && (wireless_auto_baud_num<3))
{
wireless_auto_baud_data[wireless_auto_baud_num] = wireless_rx_buffer;
wireless_auto_baud_num++;
if(3 == wireless_auto_baud_num)
{
wireless_auto_baud_flag = 2;
}
}
else
{
wireless_send_buffer[wireless_rx_index++] = wireless_rx_buffer;
if(wireless_rx_index == WIRELESS_BUFFER_SIZE)
wireless_rx_index=0;
}
}
@@ -64,9 +82,59 @@ void wireless_uart_callback(void)
void seekfree_wireless_init(void)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD><EFBFBD>Ϊ115200<30><30>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><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>޸Ĵ<DEB8><C4B4>ڵIJ<DAB5><C4B2><EFBFBD><EFBFBD><EFBFBD>
wireless_type = WIRELESS_SI24R1;
gpio_init(RTS_PIN, GPI, 0, PULLDOWN);//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#if(0 == WIRELESS_AUTO_UART_BAUD)
uart_init (WIRELESS_UART, WIRELESS_UART_BAUD, WIRELESS_UART_TX, WIRELESS_UART_RX); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif(1 == WIRELESS_AUTO_UART_BAUD)//<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
boolean temp_isr;
gpio_init(RTS_PIN, GPI, 0, PULLDOWN);//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8 rts_init_status;
rts_init_status = gpio_get(RTS_PIN);
temp_isr = areInterruptsEnabled();
enableInterrupts();
gpio_init(RTS_PIN, GPO, rts_init_status, PUSHPULL);//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uart_init (WIRELESS_UART, WIRELESS_UART_BAUD, WIRELESS_UART_TX, WIRELESS_UART_RX); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
systick_delay_ms(STM0, 5); //ģ<><C4A3><EFBFBD>ϵ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD>ȴ<EFBFBD>
gpio_set(RTS_PIN, !rts_init_status); //RTS<54><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
systick_delay_ms(STM0, 100); //RTS<54><53><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ20ms
gpio_toggle(RTS_PIN); //RTS<54><53><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
//gpio_set(RTS_PIN, 0); //RTS<54><53><EFBFBD><EFBFBD>
wireless_auto_baud_flag = 1;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
uart_putchar(WIRELESS_UART, wireless_auto_baud_data[0]);
uart_putchar(WIRELESS_UART, wireless_auto_baud_data[1]);
uart_putchar(WIRELESS_UART, wireless_auto_baud_data[2]);
systick_delay_ms(STM0, 20);
//<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
if(2 != wireless_auto_baud_flag)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>
systick_delay_ms(STM0, 500);
while(1);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
if(0xa5 != wireless_auto_baud_data[0] &&
0xff != wireless_auto_baud_data[1] &&
0xff != wireless_auto_baud_data[2] )
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>
systick_delay_ms(STM0, 500);
while(1);
}
gpio_init(RTS_PIN, GPI, 0, PUSHPULL);//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
systick_delay_ms(STM0, 10);//<2F><>ʱ<EFBFBD>ȴ<EFBFBD> ģ<><C4A3>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
restoreInterrupts(temp_isr);
#endif
}
//-------------------------------------------------------------------------------------------------------------------
@@ -82,22 +150,22 @@ uint32 seekfree_wireless_send_buff(uint8 *buff, uint32 len)
{
while(len>30)
{
if(gpio_get(RTS_PIN))
{
return len;//ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
}
//while(gpio_get(RTS_PIN)); //<2F><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// if(gpio_get(RTS_PIN))
// {
// return len;//ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
// }
while(gpio_get(RTS_PIN)); //<2F><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uart_putbuff(WIRELESS_UART,buff,30);
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
len -= 30;//<2F><><EFBFBD><EFBFBD>
}
if(gpio_get(RTS_PIN))
{
return len;//ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
}
//while(gpio_get(RTS_PIN)); //<2F><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// if(gpio_get(RTS_PIN))
// {
// return len;//ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
// }
while(gpio_get(RTS_PIN)); //<2F><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uart_putbuff(WIRELESS_UART,buff,len);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return 0;

View File

@@ -38,8 +38,26 @@
#define WIRELESS_UART_RX UART2_RX_P10_6
#define WIRELESS_UART_BAUD 115200
#define RTS_PIN P10_2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ָʾ<D6B8><CABE>ǰģ<C7B0><C4A3><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ------------------------------------ <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------------------------------------
// ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><E6B1BE>V2.0<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵġ<EFBFBD>
// ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RTS<54><53><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1BFAA>ʧ<EFBFBD>ܡ<EFBFBD>
// ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܵĻ<DCB5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3>Զϵ<D4B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 0<><30><EFBFBD>ر<EFBFBD><D8B1>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>WIRELESS_UART_BAUD֮<44><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Ӧ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>
#define WIRELESS_AUTO_UART_BAUD 0
// ------------------------------------ <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------------------------------------
#define RTS_PIN P10_2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ָʾ<D6B8><CABE>ǰģ<C7B0><C4A3><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define WIRELESS_BUFFER_SIZE 16
extern uint8 wireless_send_buffer[WIRELESS_BUFFER_SIZE];
extern uint32 wireless_rx_index;
void wireless_uart_callback(void);
void seekfree_wireless_init(void);

View File

@@ -179,7 +179,20 @@ IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO)
{
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
IfxAsclin_Asc_isrReceive(&uart2_handle);
wireless_uart_callback();
switch(wireless_type)
{
case WIRELESS_SI24R1:
{
wireless_uart_callback();
}break;
case WIRELESS_CH9141:
{
bluetooth_ch9141_uart_callback();
}break;
default:break;
}
}
IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO)
{

View File

@@ -1,9 +1,6 @@
rmdir .settings /s /q
rmdir Debug /s /q
del *.launch /s
pause
exit

View File

@@ -7,4 +7,8 @@ P14.4
P14.5
P14.6
P10.5
P10.6
P10.6
P20.2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
P21.6 <20><>TC264DAоƬ<D0BE><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>TC264D<34>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>