mirror of
https://gitee.com/seekfree/TC264_Library.git
synced 2026-06-04 03:32:56 +00:00
V1.2.0
增加CH9141蓝牙转串口模块的驱动
添加无线类型的枚举变量
修改 删除临时文件.bat 执行完操作后自动关闭窗口
修改 删除临时文件.bat 避免删除新版本所需文件
修改工程项目文件,以支持新版本编译
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,18 @@
|
|||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<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>
|
<buildCommand>
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
<triggers>clean,full,incremental,</triggers>
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
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>
|
||||||
|
|
||||||
V1.1.9
|
V1.1.9
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
||||||
uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><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>
|
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>
|
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -113,6 +113,12 @@ typedef enum //ö
|
|||||||
CAMERA_COLOR, //<2F><>ͫ
|
CAMERA_COLOR, //<2F><>ͫ
|
||||||
}CAMERA_TYPE_enum;
|
}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 <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "IfxCpu.h"
|
#include "IfxCpu.h"
|
||||||
@@ -120,6 +126,8 @@ typedef enum //ö
|
|||||||
extern CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
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 uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||||
|
|
||||||
|
extern WIRELESS_TYPE_enum wireless_type;
|
||||||
|
|
||||||
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
||||||
|
|
||||||
void get_clk(void);
|
void get_clk(void);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
#include "SEEKFREE_7725.h"
|
#include "SEEKFREE_7725.h"
|
||||||
#include "SEEKFREE_RDA5807.h"
|
#include "SEEKFREE_RDA5807.h"
|
||||||
#include "SEEKFREE_7725_UART.h"
|
#include "SEEKFREE_7725_UART.h"
|
||||||
|
#include "SEEKFREE_BLUETOOTH_CH9141.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -33,9 +33,12 @@
|
|||||||
#include "SEEKFREE_WIRELESS.h"
|
#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;
|
uint8 wireless_rx_buffer;
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
// @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)
|
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));
|
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)
|
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>
|
//<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>
|
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>
|
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)
|
while(len>30)
|
||||||
{
|
{
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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);
|
uart_putbuff(WIRELESS_UART,buff,30);
|
||||||
|
|
||||||
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
||||||
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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>
|
uart_putbuff(WIRELESS_UART,buff,len);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -38,8 +38,26 @@
|
|||||||
#define WIRELESS_UART_RX UART2_RX_P10_6
|
#define WIRELESS_UART_RX UART2_RX_P10_6
|
||||||
#define WIRELESS_UART_BAUD 115200
|
#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 wireless_uart_callback(void);
|
||||||
void seekfree_wireless_init(void);
|
void seekfree_wireless_init(void);
|
||||||
|
|||||||
@@ -179,7 +179,20 @@ IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO)
|
|||||||
{
|
{
|
||||||
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
IfxAsclin_Asc_isrReceive(&uart2_handle);
|
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)
|
IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
|
|
||||||
rmdir .settings /s /q
|
|
||||||
rmdir Debug /s /q
|
rmdir Debug /s /q
|
||||||
|
|
||||||
del *.launch /s
|
del *.launch /s
|
||||||
|
|
||||||
|
|
||||||
pause
|
|
||||||
exit
|
exit
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,18 @@
|
|||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<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>
|
<buildCommand>
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
<triggers>clean,full,incremental,</triggers>
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
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>
|
||||||
|
|
||||||
V1.1.9
|
V1.1.9
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
||||||
uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><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>
|
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>
|
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -113,6 +113,12 @@ typedef enum //ö
|
|||||||
CAMERA_COLOR, //<2F><>ͫ
|
CAMERA_COLOR, //<2F><>ͫ
|
||||||
}CAMERA_TYPE_enum;
|
}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 <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "IfxCpu.h"
|
#include "IfxCpu.h"
|
||||||
@@ -120,6 +126,8 @@ typedef enum //ö
|
|||||||
extern CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
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 uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||||
|
|
||||||
|
extern WIRELESS_TYPE_enum wireless_type;
|
||||||
|
|
||||||
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
||||||
|
|
||||||
void get_clk(void);
|
void get_clk(void);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
#include "SEEKFREE_7725.h"
|
#include "SEEKFREE_7725.h"
|
||||||
#include "SEEKFREE_RDA5807.h"
|
#include "SEEKFREE_RDA5807.h"
|
||||||
#include "SEEKFREE_7725_UART.h"
|
#include "SEEKFREE_7725_UART.h"
|
||||||
|
#include "SEEKFREE_BLUETOOTH_CH9141.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -33,9 +33,12 @@
|
|||||||
#include "SEEKFREE_WIRELESS.h"
|
#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;
|
uint8 wireless_rx_buffer;
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
// @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)
|
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));
|
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)
|
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>
|
//<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>
|
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>
|
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)
|
while(len>30)
|
||||||
{
|
{
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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);
|
uart_putbuff(WIRELESS_UART,buff,30);
|
||||||
|
|
||||||
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
||||||
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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>
|
uart_putbuff(WIRELESS_UART,buff,len);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -38,8 +38,26 @@
|
|||||||
#define WIRELESS_UART_RX UART2_RX_P10_6
|
#define WIRELESS_UART_RX UART2_RX_P10_6
|
||||||
#define WIRELESS_UART_BAUD 115200
|
#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 wireless_uart_callback(void);
|
||||||
void seekfree_wireless_init(void);
|
void seekfree_wireless_init(void);
|
||||||
|
|||||||
@@ -191,7 +191,20 @@ IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO)
|
|||||||
{
|
{
|
||||||
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
IfxAsclin_Asc_isrReceive(&uart2_handle);
|
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)
|
IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
|
|
||||||
rmdir .settings /s /q
|
|
||||||
rmdir Debug /s /q
|
rmdir Debug /s /q
|
||||||
|
|
||||||
del *.launch /s
|
del *.launch /s
|
||||||
|
|
||||||
|
|
||||||
pause
|
|
||||||
exit
|
exit
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,18 @@
|
|||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<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>
|
<buildCommand>
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
<triggers>clean,full,incremental,</triggers>
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
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>
|
||||||
|
|
||||||
V1.1.9
|
V1.1.9
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
||||||
uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><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>
|
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>
|
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -113,6 +113,12 @@ typedef enum //ö
|
|||||||
CAMERA_COLOR, //<2F><>ͫ
|
CAMERA_COLOR, //<2F><>ͫ
|
||||||
}CAMERA_TYPE_enum;
|
}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 <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "IfxCpu.h"
|
#include "IfxCpu.h"
|
||||||
@@ -120,6 +126,8 @@ typedef enum //ö
|
|||||||
extern CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
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 uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||||
|
|
||||||
|
extern WIRELESS_TYPE_enum wireless_type;
|
||||||
|
|
||||||
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
||||||
|
|
||||||
void get_clk(void);
|
void get_clk(void);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
#include "SEEKFREE_7725.h"
|
#include "SEEKFREE_7725.h"
|
||||||
#include "SEEKFREE_RDA5807.h"
|
#include "SEEKFREE_RDA5807.h"
|
||||||
#include "SEEKFREE_7725_UART.h"
|
#include "SEEKFREE_7725_UART.h"
|
||||||
|
#include "SEEKFREE_BLUETOOTH_CH9141.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -33,9 +33,12 @@
|
|||||||
#include "SEEKFREE_WIRELESS.h"
|
#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;
|
uint8 wireless_rx_buffer;
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
// @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)
|
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));
|
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)
|
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>
|
//<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>
|
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>
|
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)
|
while(len>30)
|
||||||
{
|
{
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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);
|
uart_putbuff(WIRELESS_UART,buff,30);
|
||||||
|
|
||||||
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
||||||
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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>
|
uart_putbuff(WIRELESS_UART,buff,len);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -38,8 +38,26 @@
|
|||||||
#define WIRELESS_UART_RX UART2_RX_P10_6
|
#define WIRELESS_UART_RX UART2_RX_P10_6
|
||||||
#define WIRELESS_UART_BAUD 115200
|
#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 wireless_uart_callback(void);
|
||||||
void seekfree_wireless_init(void);
|
void seekfree_wireless_init(void);
|
||||||
|
|||||||
@@ -179,7 +179,20 @@ IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO)
|
|||||||
{
|
{
|
||||||
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
IfxAsclin_Asc_isrReceive(&uart2_handle);
|
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)
|
IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
|
|
||||||
rmdir .settings /s /q
|
|
||||||
rmdir Debug /s /q
|
rmdir Debug /s /q
|
||||||
|
|
||||||
del *.launch /s
|
del *.launch /s
|
||||||
|
|
||||||
|
|
||||||
pause
|
|
||||||
exit
|
exit
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,18 @@
|
|||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<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>
|
<buildCommand>
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
<triggers>clean,full,incremental,</triggers>
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
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>
|
||||||
|
|
||||||
V1.1.9
|
V1.1.9
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
||||||
uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><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>
|
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>
|
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -113,6 +113,12 @@ typedef enum //ö
|
|||||||
CAMERA_COLOR, //<2F><>ͫ
|
CAMERA_COLOR, //<2F><>ͫ
|
||||||
}CAMERA_TYPE_enum;
|
}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 <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "IfxCpu.h"
|
#include "IfxCpu.h"
|
||||||
@@ -120,6 +126,8 @@ typedef enum //ö
|
|||||||
extern CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
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 uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||||
|
|
||||||
|
extern WIRELESS_TYPE_enum wireless_type;
|
||||||
|
|
||||||
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
||||||
|
|
||||||
void get_clk(void);
|
void get_clk(void);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
#include "SEEKFREE_7725.h"
|
#include "SEEKFREE_7725.h"
|
||||||
#include "SEEKFREE_RDA5807.h"
|
#include "SEEKFREE_RDA5807.h"
|
||||||
#include "SEEKFREE_7725_UART.h"
|
#include "SEEKFREE_7725_UART.h"
|
||||||
|
#include "SEEKFREE_BLUETOOTH_CH9141.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -33,9 +33,12 @@
|
|||||||
#include "SEEKFREE_WIRELESS.h"
|
#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;
|
uint8 wireless_rx_buffer;
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
// @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)
|
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));
|
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)
|
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>
|
//<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>
|
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>
|
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)
|
while(len>30)
|
||||||
{
|
{
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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);
|
uart_putbuff(WIRELESS_UART,buff,30);
|
||||||
|
|
||||||
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
||||||
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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>
|
uart_putbuff(WIRELESS_UART,buff,len);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -38,8 +38,26 @@
|
|||||||
#define WIRELESS_UART_RX UART2_RX_P10_6
|
#define WIRELESS_UART_RX UART2_RX_P10_6
|
||||||
#define WIRELESS_UART_BAUD 115200
|
#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 wireless_uart_callback(void);
|
||||||
void seekfree_wireless_init(void);
|
void seekfree_wireless_init(void);
|
||||||
|
|||||||
@@ -179,7 +179,20 @@ IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO)
|
|||||||
{
|
{
|
||||||
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
IfxAsclin_Asc_isrReceive(&uart2_handle);
|
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)
|
IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
|
|
||||||
rmdir .settings /s /q
|
|
||||||
rmdir Debug /s /q
|
rmdir Debug /s /q
|
||||||
|
|
||||||
del *.launch /s
|
del *.launch /s
|
||||||
|
|
||||||
|
|
||||||
pause
|
|
||||||
exit
|
exit
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,18 @@
|
|||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<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>
|
<buildCommand>
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
<triggers>clean,full,incremental,</triggers>
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
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>
|
||||||
|
|
||||||
V1.1.9
|
V1.1.9
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
||||||
uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><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>
|
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>
|
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -113,6 +113,12 @@ typedef enum //ö
|
|||||||
CAMERA_COLOR, //<2F><>ͫ
|
CAMERA_COLOR, //<2F><>ͫ
|
||||||
}CAMERA_TYPE_enum;
|
}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 <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "IfxCpu.h"
|
#include "IfxCpu.h"
|
||||||
@@ -120,6 +126,8 @@ typedef enum //ö
|
|||||||
extern CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
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 uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||||
|
|
||||||
|
extern WIRELESS_TYPE_enum wireless_type;
|
||||||
|
|
||||||
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
||||||
|
|
||||||
void get_clk(void);
|
void get_clk(void);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
#include "SEEKFREE_7725.h"
|
#include "SEEKFREE_7725.h"
|
||||||
#include "SEEKFREE_RDA5807.h"
|
#include "SEEKFREE_RDA5807.h"
|
||||||
#include "SEEKFREE_7725_UART.h"
|
#include "SEEKFREE_7725_UART.h"
|
||||||
|
#include "SEEKFREE_BLUETOOTH_CH9141.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -33,9 +33,12 @@
|
|||||||
#include "SEEKFREE_WIRELESS.h"
|
#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;
|
uint8 wireless_rx_buffer;
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
// @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)
|
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));
|
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)
|
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>
|
//<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>
|
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>
|
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)
|
while(len>30)
|
||||||
{
|
{
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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);
|
uart_putbuff(WIRELESS_UART,buff,30);
|
||||||
|
|
||||||
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
||||||
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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>
|
uart_putbuff(WIRELESS_UART,buff,len);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -38,8 +38,26 @@
|
|||||||
#define WIRELESS_UART_RX UART2_RX_P10_6
|
#define WIRELESS_UART_RX UART2_RX_P10_6
|
||||||
#define WIRELESS_UART_BAUD 115200
|
#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 wireless_uart_callback(void);
|
||||||
void seekfree_wireless_init(void);
|
void seekfree_wireless_init(void);
|
||||||
|
|||||||
@@ -179,7 +179,20 @@ IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO)
|
|||||||
{
|
{
|
||||||
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
IfxAsclin_Asc_isrReceive(&uart2_handle);
|
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)
|
IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
|
|
||||||
rmdir .settings /s /q
|
|
||||||
rmdir Debug /s /q
|
rmdir Debug /s /q
|
||||||
|
|
||||||
del *.launch /s
|
del *.launch /s
|
||||||
|
|
||||||
|
|
||||||
pause
|
|
||||||
exit
|
exit
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,18 @@
|
|||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<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>
|
<buildCommand>
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
<triggers>clean,full,incremental,</triggers>
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
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>
|
||||||
|
|
||||||
V1.1.9
|
V1.1.9
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
||||||
uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><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>
|
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>
|
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -113,6 +113,12 @@ typedef enum //ö
|
|||||||
CAMERA_COLOR, //<2F><>ͫ
|
CAMERA_COLOR, //<2F><>ͫ
|
||||||
}CAMERA_TYPE_enum;
|
}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 <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "IfxCpu.h"
|
#include "IfxCpu.h"
|
||||||
@@ -120,6 +126,8 @@ typedef enum //ö
|
|||||||
extern CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
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 uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||||
|
|
||||||
|
extern WIRELESS_TYPE_enum wireless_type;
|
||||||
|
|
||||||
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
||||||
|
|
||||||
void get_clk(void);
|
void get_clk(void);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
#include "SEEKFREE_7725.h"
|
#include "SEEKFREE_7725.h"
|
||||||
#include "SEEKFREE_RDA5807.h"
|
#include "SEEKFREE_RDA5807.h"
|
||||||
#include "SEEKFREE_7725_UART.h"
|
#include "SEEKFREE_7725_UART.h"
|
||||||
|
#include "SEEKFREE_BLUETOOTH_CH9141.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -33,9 +33,12 @@
|
|||||||
#include "SEEKFREE_WIRELESS.h"
|
#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;
|
uint8 wireless_rx_buffer;
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
// @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)
|
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));
|
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)
|
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>
|
//<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>
|
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>
|
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)
|
while(len>30)
|
||||||
{
|
{
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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);
|
uart_putbuff(WIRELESS_UART,buff,30);
|
||||||
|
|
||||||
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
||||||
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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>
|
uart_putbuff(WIRELESS_UART,buff,len);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -38,8 +38,26 @@
|
|||||||
#define WIRELESS_UART_RX UART2_RX_P10_6
|
#define WIRELESS_UART_RX UART2_RX_P10_6
|
||||||
#define WIRELESS_UART_BAUD 115200
|
#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 wireless_uart_callback(void);
|
||||||
void seekfree_wireless_init(void);
|
void seekfree_wireless_init(void);
|
||||||
|
|||||||
@@ -179,7 +179,20 @@ IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO)
|
|||||||
{
|
{
|
||||||
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
IfxAsclin_Asc_isrReceive(&uart2_handle);
|
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)
|
IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
|
|
||||||
rmdir .settings /s /q
|
|
||||||
rmdir Debug /s /q
|
rmdir Debug /s /q
|
||||||
|
|
||||||
del *.launch /s
|
del *.launch /s
|
||||||
|
|
||||||
|
|
||||||
pause
|
|
||||||
exit
|
exit
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,18 @@
|
|||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<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>
|
<buildCommand>
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
<triggers>clean,full,incremental,</triggers>
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
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>
|
||||||
|
|
||||||
V1.1.9
|
V1.1.9
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
||||||
uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><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>
|
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>
|
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -113,6 +113,12 @@ typedef enum //ö
|
|||||||
CAMERA_COLOR, //<2F><>ͫ
|
CAMERA_COLOR, //<2F><>ͫ
|
||||||
}CAMERA_TYPE_enum;
|
}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 <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "IfxCpu.h"
|
#include "IfxCpu.h"
|
||||||
@@ -120,6 +126,8 @@ typedef enum //ö
|
|||||||
extern CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
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 uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||||
|
|
||||||
|
extern WIRELESS_TYPE_enum wireless_type;
|
||||||
|
|
||||||
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
||||||
|
|
||||||
void get_clk(void);
|
void get_clk(void);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
#include "SEEKFREE_7725.h"
|
#include "SEEKFREE_7725.h"
|
||||||
#include "SEEKFREE_RDA5807.h"
|
#include "SEEKFREE_RDA5807.h"
|
||||||
#include "SEEKFREE_7725_UART.h"
|
#include "SEEKFREE_7725_UART.h"
|
||||||
|
#include "SEEKFREE_BLUETOOTH_CH9141.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -33,9 +33,12 @@
|
|||||||
#include "SEEKFREE_WIRELESS.h"
|
#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;
|
uint8 wireless_rx_buffer;
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
// @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)
|
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));
|
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)
|
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>
|
//<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>
|
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>
|
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)
|
while(len>30)
|
||||||
{
|
{
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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);
|
uart_putbuff(WIRELESS_UART,buff,30);
|
||||||
|
|
||||||
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
buff += 30; //<2F><>ַƫ<D6B7><C6AB>
|
||||||
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
len -= 30;//<2F><><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(RTS_PIN))
|
// 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>
|
// 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>
|
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>
|
uart_putbuff(WIRELESS_UART,buff,len);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -38,8 +38,26 @@
|
|||||||
#define WIRELESS_UART_RX UART2_RX_P10_6
|
#define WIRELESS_UART_RX UART2_RX_P10_6
|
||||||
#define WIRELESS_UART_BAUD 115200
|
#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 wireless_uart_callback(void);
|
||||||
void seekfree_wireless_init(void);
|
void seekfree_wireless_init(void);
|
||||||
|
|||||||
@@ -191,7 +191,20 @@ IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO)
|
|||||||
{
|
{
|
||||||
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
enableInterrupts();//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
IfxAsclin_Asc_isrReceive(&uart2_handle);
|
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)
|
IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
|
|
||||||
rmdir .settings /s /q
|
|
||||||
rmdir Debug /s /q
|
rmdir Debug /s /q
|
||||||
|
|
||||||
del *.launch /s
|
del *.launch /s
|
||||||
|
|
||||||
|
|
||||||
pause
|
|
||||||
exit
|
exit
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,18 @@
|
|||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
<buildSpec>
|
<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>
|
<buildCommand>
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
<triggers>clean,full,incremental,</triggers>
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
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>
|
||||||
|
|
||||||
V1.1.9
|
V1.1.9
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
<20><><EFBFBD><EFBFBD><EFBFBD>ڵķ<DAB5><C4B7><EFBFBD>buff<66><66><EFBFBD>ӵ<EFBFBD>128<32>ֽ<EFBFBD>
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
||||||
uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><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>
|
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>
|
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -113,6 +113,12 @@ typedef enum //ö
|
|||||||
CAMERA_COLOR, //<2F><>ͫ
|
CAMERA_COLOR, //<2F><>ͫ
|
||||||
}CAMERA_TYPE_enum;
|
}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 <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "IfxCpu.h"
|
#include "IfxCpu.h"
|
||||||
@@ -120,6 +126,8 @@ typedef enum //ö
|
|||||||
extern CAMERA_TYPE_enum camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD>
|
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 uint8 *camera_buffer_addr; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||||
|
|
||||||
|
extern WIRELESS_TYPE_enum wireless_type;
|
||||||
|
|
||||||
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
extern IfxCpu_syncEvent g_cpuSyncEvent;
|
||||||
|
|
||||||
void get_clk(void);
|
void get_clk(void);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
#include "SEEKFREE_7725.h"
|
#include "SEEKFREE_7725.h"
|
||||||
#include "SEEKFREE_RDA5807.h"
|
#include "SEEKFREE_RDA5807.h"
|
||||||
#include "SEEKFREE_7725_UART.h"
|
#include "SEEKFREE_7725_UART.h"
|
||||||
|
#include "SEEKFREE_BLUETOOTH_CH9141.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user