From eecf2e4eeef10c97569759d7c1b40817533ad1e7 Mon Sep 17 00:00:00 2001 From: SEEKFREE_BUDING <2289331269@qq.com> Date: Wed, 25 Sep 2024 09:24:44 +0800 Subject: [PATCH] =?UTF-8?q?V3.3.0=20=20=20=20=20=20=20=20=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=93=9D=E7=89=99=E4=B8=B2=E5=8F=A3=E9=80=9A=E8=AE=AF?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Example/E01_gpio_demo/.cproject | 2 +- .../E01_gpio_demo/libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ Example/E01_gpio_demo/user/cpu0_main.c | 4 +- .../E02_uart_demo/libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../E03_adc_demo/libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../E04_pwm_demo/libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../E05_pit_demo/libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../E06_exit_demo/libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../E08_eeprom_demo/libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../E09_timer_demo/libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../E15_fft_demo/libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../libraries/doc/version.txt | 2 + .../libraries/zf_common/zf_common_headfile.h | 1 + .../zf_components/seekfree_assistant.c | 26 +- .../zf_components/seekfree_assistant.h | 40 +-- .../seekfree_assistant_interface.c | 33 +- .../seekfree_assistant_interface.h | 27 +- .../libraries/zf_device/zf_device_ble6a20.c | 299 ++++++++++++++++++ .../libraries/zf_device/zf_device_ble6a20.h | 108 +++++++ .../libraries/zf_device/zf_device_type.h | 1 + .../libraries/zf_device/外设文件说明.txt | 97 ++++++ .../user/cpu0_main.c | 2 - Seekfree_TC264_Opensource_Library/user/isr.c | 1 - 164 files changed, 9203 insertions(+), 950 deletions(-) create mode 100644 Example/E01_gpio_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E01_gpio_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E01_gpio_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E02_uart_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E02_uart_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E02_uart_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E03_adc_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E03_adc_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E03_adc_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E04_pwm_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E04_pwm_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E04_pwm_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E05_pit_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E05_pit_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E05_pit_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E06_exit_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E06_exit_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E06_exit_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E07_encoder_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E07_encoder_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E07_encoder_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E08_eeprom_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E08_eeprom_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E08_eeprom_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E09_timer_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E09_timer_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E09_timer_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E10_printf_debug_log_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E11_interrupt_priority_set_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E13_dual_core_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E13_dual_core_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E13_dual_core_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Example/E15_fft_demo/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Example/E15_fft_demo/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Example/E15_fft_demo/libraries/zf_device/外设文件说明.txt create mode 100644 Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_ble6a20.c create mode 100644 Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_ble6a20.h create mode 100644 Seekfree_TC264_Opensource_Library/libraries/zf_device/外设文件说明.txt diff --git a/Example/E01_gpio_demo/.cproject b/Example/E01_gpio_demo/.cproject index 3c498e2..ee3db40 100644 --- a/Example/E01_gpio_demo/.cproject +++ b/Example/E01_gpio_demo/.cproject @@ -113,7 +113,7 @@ - + diff --git a/Example/E01_gpio_demo/libraries/doc/version.txt b/Example/E01_gpio_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E01_gpio_demo/libraries/doc/version.txt +++ b/Example/E01_gpio_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E01_gpio_demo/libraries/zf_common/zf_common_headfile.h b/Example/E01_gpio_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E01_gpio_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E01_gpio_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant.c b/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant.h b/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E01_gpio_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E01_gpio_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E01_gpio_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E01_gpio_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E01_gpio_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E01_gpio_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E01_gpio_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E01_gpio_demo/libraries/zf_device/zf_device_type.h b/Example/E01_gpio_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E01_gpio_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E01_gpio_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E01_gpio_demo/libraries/zf_device/外设文件说明.txt b/Example/E01_gpio_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E01_gpio_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E01_gpio_demo/user/cpu0_main.c b/Example/E01_gpio_demo/user/cpu0_main.c index dae2a5b..704d8a5 100644 --- a/Example/E01_gpio_demo/user/cpu0_main.c +++ b/Example/E01_gpio_demo/user/cpu0_main.c @@ -83,8 +83,8 @@ int core0_main(void) gpio_init(KEY3, GPI, GPIO_HIGH, GPI_PULL_UP); // ³õʼ»¯ KEY3 ÊäÈë ĬÈÏ¸ßµçÆ½ ÉÏÀ­ÊäÈë gpio_init(KEY4, GPI, GPIO_HIGH, GPI_PULL_UP); // ³õʼ»¯ KEY4 ÊäÈë ĬÈÏ¸ßµçÆ½ ÉÏÀ­ÊäÈë - gpio_init(SWITCH1, GPI, GPIO_HIGH, GPI_PULL_UP); // ³õʼ»¯ SWITCH1 ÊäÈë ĬÈÏ¸ßµçÆ½ ÉÏÀ­ÊäÈë - gpio_init(SWITCH2, GPI, GPIO_HIGH, GPI_PULL_UP); // ³õʼ»¯ SWITCH2 ÊäÈë ĬÈÏ¸ßµçÆ½ ÉÏÀ­ÊäÈë + gpio_init(SWITCH1, GPI, GPIO_HIGH, GPI_PULL_UP); // ³õʼ»¯ SWITCH1 ÊäÈë ĬÈÏ¸ßµçÆ½ ÉÏÀ­ÊäÈë + gpio_init(SWITCH2, GPI, GPIO_HIGH, GPI_PULL_UP); // ³õʼ»¯ SWITCH2 ÊäÈë ĬÈÏ¸ßµçÆ½ ÉÏÀ­ÊäÈë // ´Ë´¦±àдÓû§´úÂë ÀýÈçÍâÉè³õʼ»¯´úÂëµÈ cpu_wait_event_ready(); // µÈ´ýËùÓкËÐijõʼ»¯Íê±Ï diff --git a/Example/E02_uart_demo/libraries/doc/version.txt b/Example/E02_uart_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E02_uart_demo/libraries/doc/version.txt +++ b/Example/E02_uart_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E02_uart_demo/libraries/zf_common/zf_common_headfile.h b/Example/E02_uart_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E02_uart_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E02_uart_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant.c b/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant.h b/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E02_uart_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E02_uart_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E02_uart_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E02_uart_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E02_uart_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E02_uart_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E02_uart_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E02_uart_demo/libraries/zf_device/zf_device_type.h b/Example/E02_uart_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E02_uart_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E02_uart_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E02_uart_demo/libraries/zf_device/外设文件说明.txt b/Example/E02_uart_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E02_uart_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E03_adc_demo/libraries/doc/version.txt b/Example/E03_adc_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E03_adc_demo/libraries/doc/version.txt +++ b/Example/E03_adc_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E03_adc_demo/libraries/zf_common/zf_common_headfile.h b/Example/E03_adc_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E03_adc_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E03_adc_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant.c b/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant.h b/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E03_adc_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E03_adc_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E03_adc_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E03_adc_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E03_adc_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E03_adc_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E03_adc_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E03_adc_demo/libraries/zf_device/zf_device_type.h b/Example/E03_adc_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E03_adc_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E03_adc_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E03_adc_demo/libraries/zf_device/外设文件说明.txt b/Example/E03_adc_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E03_adc_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E04_pwm_demo/libraries/doc/version.txt b/Example/E04_pwm_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E04_pwm_demo/libraries/doc/version.txt +++ b/Example/E04_pwm_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E04_pwm_demo/libraries/zf_common/zf_common_headfile.h b/Example/E04_pwm_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E04_pwm_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E04_pwm_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant.c b/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant.h b/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E04_pwm_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E04_pwm_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E04_pwm_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E04_pwm_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E04_pwm_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E04_pwm_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E04_pwm_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E04_pwm_demo/libraries/zf_device/zf_device_type.h b/Example/E04_pwm_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E04_pwm_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E04_pwm_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E04_pwm_demo/libraries/zf_device/外设文件说明.txt b/Example/E04_pwm_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E04_pwm_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E05_pit_demo/libraries/doc/version.txt b/Example/E05_pit_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E05_pit_demo/libraries/doc/version.txt +++ b/Example/E05_pit_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E05_pit_demo/libraries/zf_common/zf_common_headfile.h b/Example/E05_pit_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E05_pit_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E05_pit_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant.c b/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant.h b/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E05_pit_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E05_pit_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E05_pit_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E05_pit_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E05_pit_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E05_pit_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E05_pit_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E05_pit_demo/libraries/zf_device/zf_device_type.h b/Example/E05_pit_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E05_pit_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E05_pit_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E05_pit_demo/libraries/zf_device/外设文件说明.txt b/Example/E05_pit_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E05_pit_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E06_exit_demo/libraries/doc/version.txt b/Example/E06_exit_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E06_exit_demo/libraries/doc/version.txt +++ b/Example/E06_exit_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E06_exit_demo/libraries/zf_common/zf_common_headfile.h b/Example/E06_exit_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E06_exit_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E06_exit_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant.c b/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant.h b/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E06_exit_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E06_exit_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E06_exit_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E06_exit_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E06_exit_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E06_exit_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E06_exit_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E06_exit_demo/libraries/zf_device/zf_device_type.h b/Example/E06_exit_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E06_exit_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E06_exit_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E06_exit_demo/libraries/zf_device/外设文件说明.txt b/Example/E06_exit_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E06_exit_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E07_encoder_demo/libraries/doc/version.txt b/Example/E07_encoder_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E07_encoder_demo/libraries/doc/version.txt +++ b/Example/E07_encoder_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E07_encoder_demo/libraries/zf_common/zf_common_headfile.h b/Example/E07_encoder_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E07_encoder_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E07_encoder_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant.c b/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant.h b/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E07_encoder_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E07_encoder_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E07_encoder_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E07_encoder_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E07_encoder_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E07_encoder_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E07_encoder_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E07_encoder_demo/libraries/zf_device/zf_device_type.h b/Example/E07_encoder_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E07_encoder_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E07_encoder_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E07_encoder_demo/libraries/zf_device/外设文件说明.txt b/Example/E07_encoder_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E07_encoder_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E08_eeprom_demo/libraries/doc/version.txt b/Example/E08_eeprom_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E08_eeprom_demo/libraries/doc/version.txt +++ b/Example/E08_eeprom_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E08_eeprom_demo/libraries/zf_common/zf_common_headfile.h b/Example/E08_eeprom_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E08_eeprom_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E08_eeprom_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant.c b/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant.h b/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E08_eeprom_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E08_eeprom_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E08_eeprom_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E08_eeprom_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E08_eeprom_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E08_eeprom_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E08_eeprom_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E08_eeprom_demo/libraries/zf_device/zf_device_type.h b/Example/E08_eeprom_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E08_eeprom_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E08_eeprom_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E08_eeprom_demo/libraries/zf_device/外设文件说明.txt b/Example/E08_eeprom_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E08_eeprom_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E09_timer_demo/libraries/doc/version.txt b/Example/E09_timer_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E09_timer_demo/libraries/doc/version.txt +++ b/Example/E09_timer_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E09_timer_demo/libraries/zf_common/zf_common_headfile.h b/Example/E09_timer_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E09_timer_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E09_timer_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant.c b/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant.h b/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E09_timer_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E09_timer_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E09_timer_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E09_timer_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E09_timer_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E09_timer_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E09_timer_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E09_timer_demo/libraries/zf_device/zf_device_type.h b/Example/E09_timer_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E09_timer_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E09_timer_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E09_timer_demo/libraries/zf_device/外设文件说明.txt b/Example/E09_timer_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E09_timer_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E10_printf_debug_log_demo/libraries/doc/version.txt b/Example/E10_printf_debug_log_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E10_printf_debug_log_demo/libraries/doc/version.txt +++ b/Example/E10_printf_debug_log_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E10_printf_debug_log_demo/libraries/zf_common/zf_common_headfile.h b/Example/E10_printf_debug_log_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E10_printf_debug_log_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E10_printf_debug_log_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant.c b/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant.h b/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E10_printf_debug_log_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_type.h b/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E10_printf_debug_log_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E10_printf_debug_log_demo/libraries/zf_device/外设文件说明.txt b/Example/E10_printf_debug_log_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E10_printf_debug_log_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E11_interrupt_priority_set_demo/libraries/doc/version.txt b/Example/E11_interrupt_priority_set_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E11_interrupt_priority_set_demo/libraries/doc/version.txt +++ b/Example/E11_interrupt_priority_set_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E11_interrupt_priority_set_demo/libraries/zf_common/zf_common_headfile.h b/Example/E11_interrupt_priority_set_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E11_interrupt_priority_set_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E11_interrupt_priority_set_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant.c b/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant.h b/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E11_interrupt_priority_set_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_type.h b/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E11_interrupt_priority_set_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E11_interrupt_priority_set_demo/libraries/zf_device/外设文件说明.txt b/Example/E11_interrupt_priority_set_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E11_interrupt_priority_set_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/doc/version.txt b/Example/E12_cpu1_handles_interrupts_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E12_cpu1_handles_interrupts_demo/libraries/doc/version.txt +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_common/zf_common_headfile.h b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant.c b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant.h b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_type.h b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/外设文件说明.txt b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E12_cpu1_handles_interrupts_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E13_dual_core_demo/libraries/doc/version.txt b/Example/E13_dual_core_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E13_dual_core_demo/libraries/doc/version.txt +++ b/Example/E13_dual_core_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E13_dual_core_demo/libraries/zf_common/zf_common_headfile.h b/Example/E13_dual_core_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E13_dual_core_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E13_dual_core_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant.c b/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant.h b/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E13_dual_core_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E13_dual_core_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E13_dual_core_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E13_dual_core_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E13_dual_core_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E13_dual_core_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E13_dual_core_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E13_dual_core_demo/libraries/zf_device/zf_device_type.h b/Example/E13_dual_core_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E13_dual_core_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E13_dual_core_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E13_dual_core_demo/libraries/zf_device/外设文件说明.txt b/Example/E13_dual_core_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E13_dual_core_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/doc/version.txt b/Example/E14_specifies_variable_or_code_location_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E14_specifies_variable_or_code_location_demo/libraries/doc/version.txt +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_common/zf_common_headfile.h b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant.c b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant.h b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_type.h b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/外设文件说明.txt b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E14_specifies_variable_or_code_location_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Example/E15_fft_demo/libraries/doc/version.txt b/Example/E15_fft_demo/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Example/E15_fft_demo/libraries/doc/version.txt +++ b/Example/E15_fft_demo/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Example/E15_fft_demo/libraries/zf_common/zf_common_headfile.h b/Example/E15_fft_demo/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Example/E15_fft_demo/libraries/zf_common/zf_common_headfile.h +++ b/Example/E15_fft_demo/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant.c b/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant.c +++ b/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant.h b/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant.h +++ b/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant_interface.c b/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant_interface.c +++ b/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant_interface.h b/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant_interface.h +++ b/Example/E15_fft_demo/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Example/E15_fft_demo/libraries/zf_device/zf_device_ble6a20.c b/Example/E15_fft_demo/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Example/E15_fft_demo/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Example/E15_fft_demo/libraries/zf_device/zf_device_ble6a20.h b/Example/E15_fft_demo/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Example/E15_fft_demo/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Example/E15_fft_demo/libraries/zf_device/zf_device_type.h b/Example/E15_fft_demo/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Example/E15_fft_demo/libraries/zf_device/zf_device_type.h +++ b/Example/E15_fft_demo/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Example/E15_fft_demo/libraries/zf_device/外设文件说明.txt b/Example/E15_fft_demo/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Example/E15_fft_demo/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Seekfree_TC264_Opensource_Library/libraries/doc/version.txt b/Seekfree_TC264_Opensource_Library/libraries/doc/version.txt index 68afc86..c4e0d0a 100644 --- a/Seekfree_TC264_Opensource_Library/libraries/doc/version.txt +++ b/Seekfree_TC264_Opensource_Library/libraries/doc/version.txt @@ -1,3 +1,5 @@ +V3.3.0 + ÐÂÔöÀ¶ÑÀ´®¿ÚͨѶģ¿é V3.2.13 ÐÂÔöÒ»¸ö΢ÃëÑÓʱº¯Êý ¸ÃÑÓʱº¯ÊýΪÆÕͨÑÓʱ ·ÇÖжÏÑÓʱ V3.2.12 diff --git a/Seekfree_TC264_Opensource_Library/libraries/zf_common/zf_common_headfile.h b/Seekfree_TC264_Opensource_Library/libraries/zf_common/zf_common_headfile.h index c0d833b..3a140e3 100644 --- a/Seekfree_TC264_Opensource_Library/libraries/zf_common/zf_common_headfile.h +++ b/Seekfree_TC264_Opensource_Library/libraries/zf_common/zf_common_headfile.h @@ -81,6 +81,7 @@ //===================================================Íâ½ÓÉ豸Çý¶¯²ã=================================================== #include "zf_device_absolute_encoder.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_gnss.h" #include "zf_device_camera.h" diff --git a/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant.c b/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant.c index 0b7cb9d..af3bb96 100644 --- a/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant.c +++ b/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_debug.h" diff --git a/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant.h b/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant.h index ae0f67c..5e04a1d 100644 --- a/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant.h +++ b/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_h_ #define _seekfree_assistant_h_ @@ -47,27 +47,27 @@ // ¶¨Òå½ÓÊÕFIFO´óС #define SEEKFREE_ASSISTANT_BUFFER_SIZE ( 0x80 ) -// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òåʾ²¨Æ÷µÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_OSCILLOSCOPE_COUNT ( 0x08 ) -// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ +// ¶¨Òå²ÎÊýµ÷ÊÔµÄ×î´óͨµÀÊýÁ¿ #define SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT ( 0x08 ) -// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ +// ¶¨ÒåͼÏñ±ßÏß×î´óÊýÁ¿ #define SEEKFREE_ASSISTANT_CAMERA_MAX_BOUNDARY ( 0x08 ) -// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· +// µ¥Æ¬»úÍùÉÏλ»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_SEND_HEAD ( 0xAA ) -// ÉãÏñÍ·Àà +// ÉãÏñÍ·Àà #define SEEKFREE_ASSISTANT_CAMERA_FUNCTION ( 0x02 ) #define SEEKFREE_ASSISTANT_CAMERA_DOT_FUNCTION ( 0x03 ) #define SEEKFREE_ASSISTANT_CAMERA_OSCILLOSCOPE ( 0x10 ) -// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· +// ÉÏλ»úÍùµ¥Æ¬»ú·¢Ë͵ÄÖ¡Í· #define SEEKFREE_ASSISTANT_RECEIVE_HEAD ( 0x55 ) -// ²ÎÊýÉèÖÃÀà +// ²ÎÊýÉèÖÃÀà #define SEEKFREE_ASSISTANT_RECEIVE_SET_PARAMETER ( 0x20 ) diff --git a/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant_interface.c b/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant_interface.c index fdade63..cc42e43 100644 --- a/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant_interface.c +++ b/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant_interface.c @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #include "zf_common_typedef.h" @@ -38,6 +38,7 @@ #include "zf_common_debug.h" #include "zf_driver_uart.h" #include "zf_device_wireless_uart.h" +#include "zf_device_ble6a20.h" #include "zf_device_bluetooth_ch9141.h" #include "zf_device_wifi_uart.h" #include "zf_device_wifi_spi.h" @@ -100,6 +101,12 @@ ZF_WEAK void seekfree_assistant_interface_init (seekfree_assistant_transfer_devi seekfree_assistant_receive_callback = wireless_uart_read_buffer; }break; + case SEEKFREE_ASSISTANT_BLE6A20: + { + seekfree_assistant_transfer_callback = ble6a20_send_buffer; + seekfree_assistant_receive_callback = ble6a20_read_buffer; + }break; + case SEEKFREE_ASSISTANT_CH9141: { seekfree_assistant_transfer_callback = bluetooth_ch9141_send_buffer; diff --git a/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant_interface.h b/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant_interface.h index 940b5f7..1d0158c 100644 --- a/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant_interface.h +++ b/Seekfree_TC264_Opensource_Library/libraries/zf_components/seekfree_assistant_interface.h @@ -1,20 +1,20 @@ /********************************************************************************************************************* -* RT1064DVL6A Opensourec Library ¼´£¨RT1064DVL6A ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â * Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ -* -* ±¾ÎļþÊÇ RT1064DVL6A ¿ªÔ´¿âµÄÒ»²¿·Ö -* -* RT1064DVL6A ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ * Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î * ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü -* +* * ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ * ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ * ¸ü¶àϸ½ÚÇë²Î¼û GPL -* +* * ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ * Èç¹ûûÓУ¬Çë²ÎÔÄ -* +* * ¶îÍâ×¢Ã÷£º * ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 * Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ @@ -24,13 +24,13 @@ * ÎļþÃû³Æ seekfree_assistant_interface * ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ * °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ -* ¿ª·¢»·¾³ IAR 8.32.4 or MDK 5.33 -* ÊÊÓÃÆ½Ì¨ RT1064DVL6A +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D * µêÆÌÁ´½Ó https://seekfree.taobao.com/ -* +* * Ð޸ļǼ -* ÈÕÆÚ ×÷Õß ±¸×¢ -* 2024-1-11 SeekFree first version +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-01-01 pudding first version ********************************************************************************************************************/ #ifndef _seekfree_assistant_interface_h_ @@ -43,6 +43,7 @@ typedef enum { SEEKFREE_ASSISTANT_DEBUG_UART, // µ÷ÊÔ´®¿Ú ʹÓõĴ®¿ÚÓÉDEBUG_UART_INDEXºê¶¨ÒåÖ¸¶¨ SEEKFREE_ASSISTANT_WIRELESS_UART, // ÎÞÏßת´®¿Ú + SEEKFREE_ASSISTANT_BLE6A20, // À¶ÑÀת´®¿Ú SEEKFREE_ASSISTANT_CH9141, // CH9141À¶ÑÀ SEEKFREE_ASSISTANT_WIFI_UART, // WIFIת´®¿Ú SEEKFREE_ASSISTANT_WIFI_SPI, // ¸ßËÙWIFI SPI diff --git a/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_ble6a20.c b/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_ble6a20.c new file mode 100644 index 0000000..ea8649e --- /dev/null +++ b/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_ble6a20.c @@ -0,0 +1,299 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20 +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + +#include "zf_common_clock.h" +#include "zf_common_debug.h" +#include "zf_common_fifo.h" +#include "zf_driver_delay.h" +#include "zf_driver_gpio.h" +#include "zf_driver_uart.h" +#include "zf_device_type.h" +#include "zf_device_ble6a20.h" + +static fifo_struct ble6a20_fifo; +static uint8 ble6a20_buffer[BLE6A20_BUFFER_SIZE]; + +static uint8 ble6a20_data = 0; +#if (1 == BLE6A20_AUTO_BAUD_RATE) +static volatile ble6a20_auto_baudrate_state_enum ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; +static volatile uint8 ble6a20_auto_baud_data[3] = {0x00, 0x01, 0x03}; +#endif + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +// ²ÎÊý˵Ã÷ data 8bit Êý¾Ý +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È 0-·¢ËÍÍê±Ï 1-δ·¢ËÍÍê³É +// ʹÓÃʾÀý ble6a20_send_byte(data); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_byte (const uint8 data) +{ + uint16 time_count = BLE6A20_TIMEOUT_COUNT; + while(time_count) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) + { + uart_write_byte(BLE6A20_INDEX, data); // ·¢ËÍÊý¾Ý + break; + } + time_count --; + system_delay_ms(1); + } + return (0 == time_count); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +// ²ÎÊý˵Ã÷ *buff ·¢ËÍ»º³åÇø +// ²ÎÊý˵Ã÷ len ·¢ËÍÊý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_buffer(buff, 64); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint16 time_count = 0; + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(30 <= len) // Êý¾Ý·Ö 30byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, buff, 30); // ·¢ËÍÊý¾Ý + buff += 30; // µØÖ·Æ«ÒÆ + len -= 30; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 30byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, buff, len); // ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +// ²ÎÊý˵Ã÷ *str Òª·¢Ë͵Ä×Ö·û´®µØÖ· +// ·µ»Ø²ÎÊý uint32 Ê£Óà·¢Ëͳ¤¶È +// ʹÓÃʾÀý ble6a20_send_string("Believe in yourself."); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_send_string (const char *str) +{ + zf_assert(NULL != str); + uint16 time_count = 0; + uint32 len = strlen(str); + while(0 != len) + { + if(!gpio_get_level(BLE6A20_RTS_PIN)) // Èç¹ûRTSΪµÍµçƽ Ôò¼ÌÐø·¢ËÍÊý¾Ý + { + if(128 <= len) // Êý¾Ý·Ö 128byte ÿ°ü·¢ËÍ + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, 128); // ·¢ËÍÊý¾Ý + str += 128; // µØÖ·Æ«ÒÆ + len -= 128; // ÊýÁ¿ + time_count = 0; + } + else // ²»×ã 128byte µÄÊý¾ÝÒ»´ÎÐÔ·¢ËÍÍê±Ï + { + uart_write_buffer(BLE6A20_INDEX, (const uint8 *)str, len);// ·¢ËÍÊý¾Ý + len = 0; + break; + } + } + else // Èç¹ûRTSΪ¸ßµçƽ ÔòÄ£¿éæ + { + if(BLE6A20_TIMEOUT_COUNT <= (++ time_count)) // ³¬³öÁË×î´óµÈ´ýʱ¼ä + { + break; // Í˳ö·¢ËÍ + } + system_delay_ms(1); + } + } + return len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ +// ²ÎÊý˵Ã÷ *image_addr ÐèÒª·¢Ë͵ÄͼÏñµØÖ· +// ²ÎÊý˵Ã÷ image_size ͼÏñµÄ´óС +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size) +{ + zf_assert(NULL != image_addr); + extern uint8 camera_send_image_frame_header[4]; + ble6a20_send_buffer(camera_send_image_frame_header, 4); + ble6a20_send_buffer((uint8 *)image_addr, image_size); +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý +// ²ÎÊý˵Ã÷ *buff ½ÓÊÕ»º³åÇø +// ²ÎÊý˵Ã÷ len ¶ÁÈ¡Êý¾Ý³¤¶È +// ·µ»Ø²ÎÊý uint32 ʵ¼Ê¶ÁÈ¡Êý¾Ý³¤¶È +// ʹÓÃʾÀý ble6a20_read_buffer(buff, 32); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len) +{ + zf_assert(NULL != buff); + uint32 data_len = len; + fifo_read_buffer(&ble6a20_fifo, buff, &data_len, FIFO_READ_AND_CLEAN); + return data_len; +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_callback(); +// ±¸×¢ÐÅÏ¢ ¸Ãº¯ÊýÔÚ ISR Îļþ ´®¿ÚÖжϳÌÐò±»µ÷Óà +// ÓÉ´®¿ÚÖжϷþÎñº¯Êýµ÷Óà wireless_module_uart_handler() º¯Êý +// ÔÙÓÉ wireless_module_uart_handler() º¯Êýµ÷Óñ¾º¯Êý +//------------------------------------------------------------------------------------------------------------------- +void ble6a20_callback (void) +{ + if(uart_query_byte(BLE6A20_INDEX, &ble6a20_data)) + { + fifo_write_buffer(&ble6a20_fifo, &ble6a20_data, 1); +#if BLE6A20_AUTO_BAUD_RATE // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + if(BLE6A20_AUTO_BAUD_RATE_START == ble6a20_auto_baud_flag && 3 == fifo_used(&ble6a20_fifo)) + { + uint32 ble6a20_auto_baud_count = 3; + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_GET_ACK; + fifo_read_buffer(&ble6a20_fifo, (uint8 *)ble6a20_auto_baud_data, (uint32 *)&ble6a20_auto_baud_count, FIFO_READ_AND_CLEAN); + } +#endif + } +} + +//------------------------------------------------------------------------------------------------------------------- +// º¯Êý¼ò½é À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +// ²ÎÊý˵Ã÷ void +// ·µ»Ø²ÎÊý void +// ʹÓÃʾÀý ble6a20_init(); +// ±¸×¢ÐÅÏ¢ +//------------------------------------------------------------------------------------------------------------------- +uint8 ble6a20_init (void) +{ + uint8 return_state = 0; + + // µÈ´ýÄ£¿é³õʼ»¯ + system_delay_ms(50); + + set_wireless_type(BLE6A20, ble6a20_callback); + + fifo_init(&ble6a20_fifo, FIFO_DATA_8BIT, ble6a20_buffer, BLE6A20_BUFFER_SIZE); + gpio_init(BLE6A20_RTS_PIN, GPI, GPIO_HIGH, GPI_PULL_UP); +#if(0 == BLE6A20_AUTO_BAUD_RATE) // ¹Ø±Õ×Ô¶¯²¨ÌØÂÊ + // ±¾º¯ÊýʹÓõIJ¨ÌØÂÊΪ115200 ΪÀ¶ÑÀת´®¿ÚÄ£¿éµÄĬÈϲ¨ÌØÂÊ ÈçÐèÆäËû²¨ÌØÂÊÇë×ÔÐÐÅäÖÃÄ£¿é²¢Ð޸Ĵ®¿ÚµÄ²¨ÌØÂÊ + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); +#elif(1 == BLE6A20_AUTO_BAUD_RATE) // ¿ªÆô×Ô¶¯²¨ÌØÂÊ + uint8 rts_init_status = 0; + + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_INIT; + ble6a20_auto_baud_data[0] = 0; + ble6a20_auto_baud_data[1] = 1; + ble6a20_auto_baud_data[2] = 3; + + rts_init_status = gpio_get_level(BLE6A20_RTS_PIN); + gpio_init(BLE6A20_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // ³õʼ»¯Á÷¿ØÒý½Å + + uart_init (BLE6A20_INDEX, BLE6A20_BUAD_RATE, BLE6A20_RX_PIN, BLE6A20_TX_PIN); // ³õʼ»¯´®¿Ú + uart_rx_interrupt(BLE6A20_INDEX, 1); + + system_delay_ms(5); // Ä£¿éÉϵçÖ®ºóÐèÒªÑÓʱµÈ´ý + gpio_set_level(BLE6A20_RTS_PIN, !rts_init_status); // RTSÒý½ÅÀ­¸ß£¬½øÈë×Ô¶¯²¨ÌØÂÊģʽ + system_delay_ms(100); // RTSÀ­¸ßÖ®ºó±ØÐëÑÓʱ20ms + gpio_toggle_level(BLE6A20_RTS_PIN); // RTSÒý½ÅÈ¡·´ + + do + { + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_START; + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[0]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[1]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + uart_write_byte(BLE6A20_INDEX, ble6a20_auto_baud_data[2]); // ·¢ËÍÌØ¶¨Êý¾Ý ÓÃÓÚÄ£¿é×Ô¶¯Åжϲ¨ÌØÂÊ + system_delay_ms(20); + + if(BLE6A20_AUTO_BAUD_RATE_GET_ACK != ble6a20_auto_baud_flag) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÍê³É + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + + if( 0xa5 != ble6a20_auto_baud_data[0] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[1] && // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + 0xff != ble6a20_auto_baud_data[2] ) // ¼ìÑé×Ô¶¯²¨ÌØÂÊÊÇ·ñÕýÈ· + { + return_state = 1; // Èç¹û³ÌÐò½øÈëµ½´ËÓï¾äÄÚ ËµÃ÷×Ô¶¯²¨ÌØÂÊʧ°ÜÁË + break; + } + ble6a20_auto_baud_flag = BLE6A20_AUTO_BAUD_RATE_SUCCESS; + + gpio_init(BLE6A20_RTS_PIN, GPI, 0, GPI_PULL_UP); // ³õʼ»¯Á÷¿ØÒý½Å + system_delay_ms(10); // ÑÓʱµÈ´ý Ä£¿é×¼±¸¾ÍÐ÷ + }while(0); +#endif + return return_state; +} diff --git a/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_ble6a20.h b/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_ble6a20.h new file mode 100644 index 0000000..c037ea2 --- /dev/null +++ b/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_ble6a20.h @@ -0,0 +1,108 @@ +/********************************************************************************************************************* +* TC264 Opensourec Library ¼´£¨TC264 ¿ªÔ´¿â£©ÊÇÒ»¸ö»ùÓÚ¹Ù·½ SDK ½Ó¿ÚµÄµÚÈý·½¿ªÔ´¿â +* Copyright (c) 2022 SEEKFREE Öð·É¿Æ¼¼ +* +* ±¾ÎļþÊÇ TC264 ¿ªÔ´¿âµÄÒ»²¿·Ö +* +* TC264 ¿ªÔ´¿â ÊÇÃâ·ÑÈí¼þ +* Äú¿ÉÒÔ¸ù¾Ý×ÔÓÉÈí¼þ»ù½ð»á·¢²¼µÄ GPL£¨GNU General Public License£¬¼´ GNUͨÓù«¹²Ðí¿ÉÖ¤£©µÄÌõ¿î +* ¼´ GPL µÄµÚ3°æ£¨¼´ GPL3.0£©»ò£¨ÄúÑ¡ÔñµÄ£©ÈκκóÀ´µÄ°æ±¾£¬ÖØÐ·¢²¼ºÍ/»òÐÞ¸ÄËü +* +* ±¾¿ªÔ´¿âµÄ·¢²¼ÊÇÏ£ÍûËüÄÜ·¢»Ó×÷Ó㬵«²¢Î´¶ÔÆä×÷Èκεı£Ö¤ +* ÉõÖÁûÓÐÒþº¬µÄÊÊÏúÐÔ»òÊʺÏÌØ¶¨ÓÃ;µÄ±£Ö¤ +* ¸ü¶àϸ½ÚÇë²Î¼û GPL +* +* ÄúÓ¦¸ÃÔÚÊÕµ½±¾¿ªÔ´¿âµÄͬʱÊÕµ½Ò»·Ý GPL µÄ¸±±¾ +* Èç¹ûûÓУ¬Çë²ÎÔÄ +* +* ¶îÍâ×¢Ã÷£º +* ±¾¿ªÔ´¿âʹÓà GPL3.0 ¿ªÔ´Ðí¿É֤ЭÒé ÒÔÉÏÐí¿ÉÉêÃ÷ΪÒëÎİ汾 +* Ðí¿ÉÉêÃ÷Ó¢ÎİæÔÚ libraries/doc Îļþ¼ÐÏ嵀 GPL3_permission_statement.txt ÎļþÖÐ +* Ðí¿ÉÖ¤¸±±¾ÔÚ libraries Îļþ¼ÐÏ ¼´¸ÃÎļþ¼ÐÏ嵀 LICENSE Îļþ +* »¶Ó­¸÷λʹÓò¢´«²¥±¾³ÌÐò µ«ÐÞ¸ÄÄÚÈÝʱ±ØÐë±£ÁôÖð·É¿Æ¼¼µÄ°æÈ¨ÉùÃ÷£¨¼´±¾ÉùÃ÷£© +* +* ÎļþÃû³Æ zf_device_ble6a20.h +* ¹«Ë¾Ãû³Æ ³É¶¼Öð·É¿Æ¼¼ÓÐÏÞ¹«Ë¾ +* °æ±¾ÐÅÏ¢ ²é¿´ libraries/doc Îļþ¼ÐÄÚ version Îļþ °æ±¾ËµÃ÷ +* ¿ª·¢»·¾³ ADS v1.9.20 +* ÊÊÓÃÆ½Ì¨ TC264D +* µêÆÌÁ´½Ó https://seekfree.taobao.com/ +* +* Ð޸ļǼ +* ÈÕÆÚ ×÷Õß ±¸×¢ +* 2024-07-02 pudding first version +********************************************************************************************************************/ +/********************************************************************************************************************* +* ½ÓÏß¶¨Ò壺 +* ------------------------------------ +* Ä£¿é¹Ü½Å µ¥Æ¬»ú¹Ü½Å +* RX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RX_PIN ºê¶¨Òå +* TX ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_TX_PIN ºê¶¨Òå +* RTS ²é¿´ zf_device_ble6a20.h ÖÐ BLE6A20_RTS_PIN ºê¶¨Òå +* VCC 3.3VµçÔ´ +* GND µçÔ´µØ +* ÆäÓàÒý½ÅÐü¿Õ +* ------------------------------------ +*********************************************************************************************************************/ + + +#ifndef _zf_device_ble6a20_h_ +#define _zf_device_ble6a20_h_ + +#include "zf_common_typedef.h" + + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + +#define BLE6A20_INDEX (UART_2) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿ÚºÅ +#define BLE6A20_BUAD_RATE (115200) // À¶ÑÀ´®¿Ú¶ÔӦʹÓõĴ®¿Ú²¨ÌØÂÊ + // ²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 +#define BLE6A20_TX_PIN (UART2_RX_P10_6) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ TX Òª½Óµ½µ¥Æ¬»úµÄ RX +#define BLE6A20_RX_PIN (UART2_TX_P10_5) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RX Òª½Óµ½µ¥Æ¬»úµÄ TX +#define BLE6A20_RTS_PIN (P10_2) // À¶ÑÀ´®¿Ú¶ÔӦģ¿éµÄ RTS Òý½Å + +#define BLE6A20_BUFFER_SIZE ( 64 ) // À¶ÑÀ´®¿Ú»º³åÇø´óС +#define BLE6A20_TIMEOUT_COUNT ( 0x64 ) // À¶ÑÀ´®¿ÚͨѶ³¬Ê±·¶Î§ + +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ +// ×¢ÒâÊÂÏî1£º¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÁ¬½ÓRTSÒý½Å ·ñÔò»á¿ªÆôʧ°Ü¡£ +// ×¢ÒâÊÂÏî2£ºÄ£¿é×Ô¶¯²¨ÌØÂÊʧ°ÜµÄ»° ¿ÉÒÔ³¢ÊԶϵçÖØÆô + +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî +// ¿ªÆô×Ô¶¯²¨ÌØÂÊÎñ±ØÔĶÁÉÏÃæÁ½Ìõ ×¢ÒâÊÂÏî + +// 0£º¹Ø±Õ×Ô¶¯²¨ÌØÂÊ +// 1£º¿ªÆô×Ô¶¯²¨ÌØÂÊ ×Ô¶¯²¨ÌØÂʵÄ×÷ÓÃÊÇÐÞ¸Ä BLE6A20_BAUD Ö®ºó²»ÐèÒª¶ÔÄ£¿é½øÐÐÅäÖà ģ¿é»á×Ô¶¯ÉèÖÃΪ¶ÔÓ¦µÄ²¨ÌØÂÊ +// ×Ô¶¯²¨ÌØÂʽöÖ§³Ö 9600 57600 115200 230400 460800 921600 1500000 2000000 + +#define BLE6A20_AUTO_BAUD_RATE ( 0 ) + +#if (1 == BLE6A20_AUTO_BAUD_RATE) +typedef enum +{ + BLE6A20_AUTO_BAUD_RATE_SUCCESS, + BLE6A20_AUTO_BAUD_RATE_INIT, + BLE6A20_AUTO_BAUD_RATE_START, + BLE6A20_AUTO_BAUD_RATE_GET_ACK, +}ble6a20_auto_baudrate_state_enum; +#endif +// ------------------------------------ ×Ô¶¯²¨ÌØÂÊ ------------------------------------ + +//=================================================¶¨Òå À¶ÑÀ´®¿Ú »ù±¾ÅäÖÃ================================================ + + +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ +uint32 ble6a20_send_byte (const uint8 data); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý +uint32 ble6a20_send_buffer (const uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÊý¾Ý¿é +uint32 ble6a20_send_string (const char *str); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍ×Ö·û´® +void ble6a20_send_image (const uint8 *image_addr, uint32 image_size); // À¶ÑÀת´®¿ÚÄ£¿é ·¢ËÍÉãÏñͷͼÏñÖÁÉÏλ»ú²é¿´Í¼Ïñ + +uint32 ble6a20_read_buffer (uint8 *buff, uint32 len); // À¶ÑÀת´®¿ÚÄ£¿é ¶ÁÈ¡»º³åÇøÊý¾Ý + +void ble6a20_callback (void); // À¶ÑÀת´®¿ÚÄ£¿é ´®¿ÚÖжϻص÷º¯Êý + +uint8 ble6a20_init (void); // À¶ÑÀת´®¿ÚÄ£¿é ³õʼ»¯ +//=================================================ÉùÃ÷ À¶ÑÀ´®¿Ú »ù´¡º¯Êý================================================ + +#endif diff --git a/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_type.h b/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_type.h index 6c2b8da..4f8ec53 100644 --- a/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_type.h +++ b/Seekfree_TC264_Opensource_Library/libraries/zf_device/zf_device_type.h @@ -54,6 +54,7 @@ typedef enum { NO_WIRELESS = 0, // ÎÞÉ豸 WIRELESS_UART, // ÎÞÏß´®¿Ú + BLE6A20, // À¶ÑÀ´®¿Ú BLUETOOTH_CH9141, // À¶ÑÀ CH9141 WIFI_UART, // ´®¿Ú WiFi RECEIVER_UART, // ǹʽң¿ØÆ÷ diff --git a/Seekfree_TC264_Opensource_Library/libraries/zf_device/外设文件说明.txt b/Seekfree_TC264_Opensource_Library/libraries/zf_device/外设文件说明.txt new file mode 100644 index 0000000..1c96965 --- /dev/null +++ b/Seekfree_TC264_Opensource_Library/libraries/zf_device/外设文件说明.txt @@ -0,0 +1,97 @@ + +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ +ÈçÐè»ñÈ¡Ïêϸ×ÊÁÏ¿ÉÁªÏµÌÔ±¦µêÆÌ¿Í·þ£ºhttps://seekfree.taobao.com/ + +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é +±¾ÎļþÖ÷ÒªÓÃÓÚ˵Ã÷ zf_device Ŀ¼Ï¸÷¸öÎļþËù¶ÔÓ¦µÄÍâÉèÄ£¿é + + +=================================================== ²â¾àÄ£¿é =================================================== + +zf_device_dl1a.h TOF ²â¾àÄ£¿é DL1A ƵÂÊ£º33hz ×î´ó¾àÀ룺1.2 Ã× + +zf_device_dl1b.h TOF ²â¾àÄ£¿é DL1B ƵÂÊ£º100hz ×î´ó¾àÀ룺1.4 Ã× + +=================================================== ²â¾àÄ£¿é =================================================== + + + +==================================================== ÍÓÂÝÒÇ ==================================================== + +zf_device_mpu6050.h MPU6050 ÁùÖáÍÓÂÝÒÇ ´«Í³ IIC ͨѶ + +zf_device_icm20602.h ICM20602 ÁùÖáÍÓÂÝÒÇ Ö§³Ö SPI ²ÉÖµ + +zf_device_imu660ra.h IMU660RA ÁùÖáÍÓÂÝÒÇ ¸ß¾«¶ÈÍÓÂÝÒÇ + +zf_device_imu963ra.h IMU963RA ¾ÅÖáÍÓÂÝÒÇ Ö§³ÖµØ´Å¼Æ²É¼¯ + +==================================================== ÍÓÂÝÒÇ ==================================================== + + + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + +zf_device_ips114.h IPS114 Òº¾§ÆÁÄ» 1.14 ´ç ·Ö±æÂÊ£º240 * 135 + +zf_device_ips200.h IPS200 Òº¾§ÆÁÄ» 2.0 ´ç ·Ö±æÂÊ£º240 * 320 + +zf_device_tft180.h TFT180 ÆÁÄ» 1.8´ç ·Ö±æÂÊ£º160 * 128 + +zf_device_oled.h OLED Òº¾§ÆÁÄ» 0.96 ´ç ·Ö±æÂÊ£º128 * 64 + +=================================================== ÆÁÄ»ÏÔʾ =================================================== + + + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + +zf_device_mt9v03x.h MT9V03X ×Ü×ê·ç»Ò¶ÈÉãÏñÍ· + +zf_device_ov7725.h OV7725 С×ê·çÓ²¼þ¶þÖµ»¯ÉãÏñÍ· + +zf_device_scc8660.h SCC8660 ÁèÍ«²ÊÉ«ÉãÏñÍ· + +zf_device_tsl1401.h TSL1401 ºìº¢¶ùÏßÕóCCD + +================================================== ͼÏñ´«¸ÐÆ÷ ================================================== + + + +=================================================== ÎÞÏßͨѶ =================================================== + +zf_device_ble6a20.h À¶ÑÀ´®¿ÚÄ£¿é ÎÞÏßͨѶ + +zf_device_bluetooth_ch9141.h CH9141 À¶ÑÀͨѶģ¿é À¶ÑÀ×éÍøÍ¨Ñ¶ + +zf_device_wifi_spi.h WIFI-SPI ¸ßËÙWIFIÎÞÏßͨѶģ¿é + +zf_device_wifi_uart.h WIFI-UART ´®¿ÚWIFIÎÞÏßͨѶģ¿é + +zf_device_wireless_uart.h ÎÞÏß´®¿ÚÄ£¿é + +=================================================== ÎÞÏßͨѶ =================================================== + + + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + +zf_device_uart_receiver.h SUBS ´®¿ÚÒ£¿ØÆ÷ ´®¿ÚͨѶ ³¤¾àÀëÒ£¿Ø 2.4GƵ¶Î + +=================================================== Ô¶³ÌÒ£¿Ø =================================================== + + + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== + +zf_device_absolute_encoder.h 360¡ã λÖô«¸ÐÆ÷ ¾ø¶ÔʽÃÔÄã mini ±àÂëÆ÷ ·Ö±æÂÊ£º0.088¡ã + +zf_device_gnss.h GPS ¼° RTK ¶¨Î»Ä£¿é ˫Ƶ¸ß¾«¶È¶¨Î»Ä£¿é ÑÇÃ×¼¶¶¨Î» + +zf_device_key.h GPIO °´¼üÇý¶¯ ÓÃÓÚ¼ì²âÖ÷°å°´¼ü״̬ + +zf_device_virtual_oscilloscope.h VisualScope ÐéÄâʾ²¨Æ÷ + +================================================== ÆäËû´«¸ÐÆ÷ ================================================== \ No newline at end of file diff --git a/Seekfree_TC264_Opensource_Library/user/cpu0_main.c b/Seekfree_TC264_Opensource_Library/user/cpu0_main.c index 06c540d..c8dd53d 100644 --- a/Seekfree_TC264_Opensource_Library/user/cpu0_main.c +++ b/Seekfree_TC264_Opensource_Library/user/cpu0_main.c @@ -40,7 +40,6 @@ // ±¾Àý³ÌÊÇ¿ªÔ´¿â¿Õ¹¤³Ì ¿ÉÓÃ×÷ÒÆÖ²»òÕß²âÊÔ¸÷ÀàÄÚÍâÉè // ±¾Àý³ÌÊÇ¿ªÔ´¿â¿Õ¹¤³Ì ¿ÉÓÃ×÷ÒÆÖ²»òÕß²âÊÔ¸÷ÀàÄÚÍâÉè - // **************************** ´úÂëÇøÓò **************************** int core0_main(void) { @@ -59,7 +58,6 @@ int core0_main(void) - // ´Ë´¦±àдÐèҪѭ»·Ö´ÐеĴúÂë } } diff --git a/Seekfree_TC264_Opensource_Library/user/isr.c b/Seekfree_TC264_Opensource_Library/user/isr.c index 125f6d4..17000a4 100644 --- a/Seekfree_TC264_Opensource_Library/user/isr.c +++ b/Seekfree_TC264_Opensource_Library/user/isr.c @@ -135,7 +135,6 @@ IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO) // exti_flag_clear(ERU_CH6_REQ9_P20_0); // } // } - IFX_INTERRUPT(exti_ch3_ch7_isr, 0, EXTI_CH3_CH7_INT_PRIO) { interrupt_global_enable(0); // ¿ªÆôÖжÏǶÌ×