diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
index 263d9f6..79227f7 100644
--- a/.vscode/c_cpp_properties.json
+++ b/.vscode/c_cpp_properties.json
@@ -4,6 +4,11 @@
"name": "nrf52833_xxaa",
"includePath": [
"libznordic\\include",
+ "sdk/external/fatfs/src/",
+ "sdk/external/fatfs/src/",
+ "sdk/external/fatfs/port/",
+ "sdk/components/libraries/block_dev/sdc/",
+ "sdk/components/libraries/block_dev/",
"sdk\\config",
"app\\src",
"sdk\\components",
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 6d86b83..876ea80 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -42,6 +42,10 @@
"ble_srv_common.h": "c",
"zdatachannel_service.h": "c",
"ble_link_ctx_manager.h": "c",
- "nrf_drv_saadc.h": "c"
+ "nrf_drv_saadc.h": "c",
+ "project_cfg.h": "c",
+ "nrf_block_dev_sdc.h": "c",
+ "nrf_drv_pwm.h": "c",
+ "nrfx_config.h": "c"
}
}
\ No newline at end of file
diff --git a/app/app.uvoptx b/app/app.uvoptx
index 15fd958..b13ae18 100644
--- a/app/app.uvoptx
+++ b/app/app.uvoptx
@@ -823,6 +823,18 @@
0
0
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\sdk\modules\nrfx\drivers\src\nrfx_pwm.c
+ nrfx_pwm.c
+ 0
+ 0
+
@@ -833,7 +845,7 @@
0
8
- 35
+ 36
1
0
0
@@ -845,7 +857,7 @@
8
- 36
+ 37
1
0
0
@@ -857,7 +869,7 @@
8
- 37
+ 38
1
0
0
@@ -869,7 +881,7 @@
8
- 38
+ 39
1
0
0
@@ -881,7 +893,7 @@
8
- 39
+ 40
1
0
0
@@ -893,7 +905,7 @@
8
- 40
+ 41
1
0
0
@@ -905,7 +917,7 @@
8
- 41
+ 42
1
0
0
@@ -917,7 +929,7 @@
8
- 42
+ 43
1
0
0
@@ -929,7 +941,7 @@
8
- 43
+ 44
1
0
0
@@ -941,7 +953,7 @@
8
- 44
+ 45
1
0
0
@@ -953,7 +965,7 @@
8
- 45
+ 46
1
0
0
@@ -965,7 +977,7 @@
8
- 46
+ 47
1
0
0
@@ -977,7 +989,7 @@
8
- 47
+ 48
1
0
0
@@ -989,7 +1001,7 @@
8
- 48
+ 49
1
0
0
@@ -1001,7 +1013,7 @@
8
- 49
+ 50
1
0
0
@@ -1013,7 +1025,7 @@
8
- 50
+ 51
1
0
0
@@ -1025,7 +1037,7 @@
8
- 51
+ 52
1
0
0
@@ -1037,7 +1049,7 @@
8
- 52
+ 53
1
0
0
@@ -1049,7 +1061,7 @@
8
- 53
+ 54
1
0
0
@@ -1061,7 +1073,7 @@
8
- 54
+ 55
1
0
0
@@ -1073,7 +1085,7 @@
8
- 55
+ 56
1
0
0
@@ -1085,7 +1097,7 @@
8
- 56
+ 57
1
0
0
@@ -1097,7 +1109,7 @@
8
- 57
+ 58
1
0
0
@@ -1109,7 +1121,7 @@
8
- 58
+ 59
1
0
0
@@ -1121,7 +1133,7 @@
8
- 59
+ 60
1
0
0
@@ -1131,17 +1143,41 @@
0
0
+
+ 8
+ 61
+ 1
+ 0
+ 0
+ 0
+ ..\sdk\components\libraries\block_dev\sdc\nrf_block_dev_sdc.c
+ nrf_block_dev_sdc.c
+ 0
+ 0
+
+
+ 8
+ 62
+ 1
+ 0
+ 0
+ 0
+ ..\sdk\components\libraries\sdcard\app_sdcard.c
+ app_sdcard.c
+ 0
+ 0
+
nRF_Log
- 1
+ 0
0
0
0
9
- 60
+ 63
1
0
0
@@ -1153,7 +1189,7 @@
9
- 61
+ 64
1
0
0
@@ -1165,7 +1201,7 @@
9
- 62
+ 65
1
0
0
@@ -1177,7 +1213,7 @@
9
- 63
+ 66
1
0
0
@@ -1189,7 +1225,7 @@
9
- 64
+ 67
1
0
0
@@ -1201,7 +1237,7 @@
9
- 65
+ 68
1
0
0
@@ -1221,7 +1257,7 @@
0
10
- 66
+ 69
1
0
0
@@ -1233,7 +1269,7 @@
10
- 67
+ 70
1
0
0
@@ -1245,7 +1281,7 @@
10
- 68
+ 71
1
0
0
@@ -1265,7 +1301,7 @@
0
11
- 69
+ 72
1
0
0
@@ -1277,7 +1313,7 @@
11
- 70
+ 73
1
0
0
@@ -1289,7 +1325,7 @@
11
- 71
+ 74
1
0
0
@@ -1309,7 +1345,7 @@
0
12
- 72
+ 75
1
0
0
@@ -1322,6 +1358,38 @@
+ FATFS
+ 1
+ 0
+ 0
+ 0
+
+ 13
+ 76
+ 1
+ 0
+ 0
+ 0
+ ..\sdk\external\fatfs\port\diskio_blkdev.c
+ diskio_blkdev.c
+ 0
+ 0
+
+
+ 13
+ 77
+ 1
+ 0
+ 0
+ 0
+ ..\sdk\external\fatfs\src\ff.c
+ ff.c
+ 0
+ 0
+
+
+
+
::CMSIS
0
0
diff --git a/app/app.uvprojx b/app/app.uvprojx
index 2136e33..17b1940 100644
--- a/app/app.uvprojx
+++ b/app/app.uvprojx
@@ -339,7 +339,7 @@
--reduce_paths --diag_suppress=1295 --diag_suppress=1
APP_TIMER_V2 APP_TIMER_V2_RTC1_ENABLED BOARD_PCA10100 CONFIG_GPIO_AS_PINRESET FLOAT_ABI_HARD NRF52833_XXAA NRF_SD_BLE_API_VERSION=7 S140 SOFTDEVICE_PRESENT __HEAP_SIZE=2048 __STACK_SIZE=2048
- ..\sdk\config;..\sdk\components;..\sdk\components\ble\ble_advertising;..\sdk\components\ble\ble_dtm;..\sdk\components\ble\ble_link_ctx_manager;..\sdk\components\ble\ble_racp;..\sdk\components\ble\ble_services\ble_ancs_c;..\sdk\components\ble\ble_services\ble_ans_c;..\sdk\components\ble\ble_services\ble_bas;..\sdk\components\ble\ble_services\ble_bas_c;..\sdk\components\ble\ble_services\ble_cscs;..\sdk\components\ble\ble_services\ble_cts_c;..\sdk\components\ble\ble_services\ble_dfu;..\sdk\components\ble\ble_services\ble_dis;..\sdk\components\ble\ble_services\ble_gls;..\sdk\components\ble\ble_services\ble_hids;..\sdk\components\ble\ble_services\ble_hrs;..\sdk\components\ble\ble_services\ble_hrs_c;..\sdk\components\ble\ble_services\ble_hts;..\sdk\components\ble\ble_services\ble_ias;..\sdk\components\ble\ble_services\ble_ias_c;..\sdk\components\ble\ble_services\ble_lbs;..\sdk\components\ble\ble_services\ble_lbs_c;..\sdk\components\ble\ble_services\ble_lls;..\sdk\components\ble\ble_services\ble_nus;..\sdk\components\ble\ble_services\ble_nus_c;..\sdk\components\ble\ble_services\ble_rscs;..\sdk\components\ble\ble_services\ble_rscs_c;..\sdk\components\ble\ble_services\ble_tps;..\sdk\components\ble\common;..\sdk\components\ble\nrf_ble_gatt;..\sdk\components\ble\nrf_ble_qwr;..\sdk\components\ble\peer_manager;..\sdk\components\boards;..\sdk\components\libraries\atomic;..\sdk\components\libraries\atomic_fifo;..\sdk\components\libraries\atomic_flags;..\sdk\components\libraries\balloc;..\sdk\components\libraries\bootloader\ble_dfu;..\sdk\components\libraries\bsp;..\sdk\components\libraries\button;..\sdk\components\libraries\cli;..\sdk\components\libraries\crc16;..\sdk\components\libraries\crc32;..\sdk\components\libraries\crypto;..\sdk\components\libraries\csense;..\sdk\components\libraries\csense_drv;..\sdk\components\libraries\delay;..\sdk\components\libraries\ecc;..\sdk\components\libraries\experimental_section_vars;..\sdk\components\libraries\experimental_task_manager;..\sdk\components\libraries\fds;..\sdk\components\libraries\fifo;..\sdk\components\libraries\fstorage;..\sdk\components\libraries\gfx;..\sdk\components\libraries\gpiote;..\sdk\components\libraries\hardfault;..\sdk\components\libraries\hci;..\sdk\components\libraries\led_softblink;..\sdk\components\libraries\log;..\sdk\components\libraries\log\src;..\sdk\components\libraries\low_power_pwm;..\sdk\components\libraries\mem_manager;..\sdk\components\libraries\memobj;..\sdk\components\libraries\mpu;..\sdk\components\libraries\mutex;..\sdk\components\libraries\pwm;..\sdk\components\libraries\pwr_mgmt;..\sdk\components\libraries\queue;..\sdk\components\libraries\ringbuf;..\sdk\components\libraries\scheduler;..\sdk\components\libraries\sdcard;..\sdk\components\libraries\slip;..\sdk\components\libraries\sortlist;..\sdk\components\libraries\spi_mngr;..\sdk\components\libraries\stack_guard;..\sdk\components\libraries\strerror;..\sdk\components\libraries\svc;..\sdk\components\libraries\timer;..\sdk\components\libraries\twi_mngr;..\sdk\components\libraries\twi_sensor;..\sdk\components\libraries\uart;..\sdk\components\libraries\usbd;..\sdk\components\libraries\usbd\class\audio;..\sdk\components\libraries\usbd\class\cdc;..\sdk\components\libraries\usbd\class\cdc\acm;..\sdk\components\libraries\usbd\class\hid;..\sdk\components\libraries\usbd\class\hid\generic;..\sdk\components\libraries\usbd\class\hid\kbd;..\sdk\components\libraries\usbd\class\hid\mouse;..\sdk\components\libraries\usbd\class\msc;..\sdk\components\libraries\util;..\sdk\components\nfc\ndef\conn_hand_parser;..\sdk\components\nfc\ndef\conn_hand_parser\ac_rec_parser;..\sdk\components\nfc\ndef\conn_hand_parser\ble_oob_advdata_parser;..\sdk\components\nfc\ndef\conn_hand_parser\le_oob_rec_parser;..\sdk\components\nfc\ndef\connection_handover\ac_rec;..\sdk\components\nfc\ndef\connection_handover\ble_oob_advdata;..\sdk\components\nfc\ndef\connection_handover\ble_pair_lib;..\sdk\components\nfc\ndef\connection_handover\ble_pair_msg;..\sdk\components\nfc\ndef\connection_handover\common;..\sdk\components\nfc\ndef\connection_handover\ep_oob_rec;..\sdk\components\nfc\ndef\connection_handover\hs_rec;..\sdk\components\nfc\ndef\connection_handover\le_oob_rec;..\sdk\components\nfc\ndef\generic\message;..\sdk\components\nfc\ndef\generic\record;..\sdk\components\nfc\ndef\launchapp;..\sdk\components\nfc\ndef\parser\message;..\sdk\components\nfc\ndef\parser\record;..\sdk\components\nfc\ndef\text;..\sdk\components\nfc\ndef\uri;..\sdk\components\nfc\platform;..\sdk\components\nfc\t2t_lib;..\sdk\components\nfc\t2t_parser;..\sdk\components\nfc\t4t_lib;..\sdk\components\nfc\t4t_parser\apdu;..\sdk\components\nfc\t4t_parser\cc_file;..\sdk\components\nfc\t4t_parser\hl_detection_procedure;..\sdk\components\nfc\t4t_parser\tlv;..\sdk\components\softdevice\common;..\sdk\components\softdevice\s140\headers;..\sdk\components\softdevice\s140\headers\nrf52;..\sdk\external\fprintf;..\sdk\external\segger_rtt;..\sdk\external\utf_converter;..\sdk\integration\nrfx;..\sdk\integration\nrfx\legacy;..\sdk\modules\nrfx;..\sdk\modules\nrfx\drivers\include;..\sdk\modules\nrfx\hal;.\config\;.\src\;..\libznordic\include
+ ..\sdk\config;..\sdk\components;..\sdk\components\ble\ble_advertising;..\sdk\components\ble\ble_dtm;..\sdk\components\ble\ble_link_ctx_manager;..\sdk\components\ble\ble_racp;..\sdk\components\ble\ble_services\ble_ancs_c;..\sdk\components\ble\ble_services\ble_ans_c;..\sdk\components\ble\ble_services\ble_bas;..\sdk\components\ble\ble_services\ble_bas_c;..\sdk\components\ble\ble_services\ble_cscs;..\sdk\components\ble\ble_services\ble_cts_c;..\sdk\components\ble\ble_services\ble_dfu;..\sdk\components\ble\ble_services\ble_dis;..\sdk\components\ble\ble_services\ble_gls;..\sdk\components\ble\ble_services\ble_hids;..\sdk\components\ble\ble_services\ble_hrs;..\sdk\components\ble\ble_services\ble_hrs_c;..\sdk\components\ble\ble_services\ble_hts;..\sdk\components\ble\ble_services\ble_ias;..\sdk\components\ble\ble_services\ble_ias_c;..\sdk\components\ble\ble_services\ble_lbs;..\sdk\components\ble\ble_services\ble_lbs_c;..\sdk\components\ble\ble_services\ble_lls;..\sdk\components\ble\ble_services\ble_nus;..\sdk\components\ble\ble_services\ble_nus_c;..\sdk\components\ble\ble_services\ble_rscs;..\sdk\components\ble\ble_services\ble_rscs_c;..\sdk\components\ble\ble_services\ble_tps;..\sdk\components\ble\common;..\sdk\components\ble\nrf_ble_gatt;..\sdk\components\ble\nrf_ble_qwr;..\sdk\components\ble\peer_manager;..\sdk\components\boards;..\sdk\components\libraries\atomic;..\sdk\components\libraries\atomic_fifo;..\sdk\components\libraries\atomic_flags;..\sdk\components\libraries\balloc;..\sdk\components\libraries\bootloader\ble_dfu;..\sdk\components\libraries\bsp;..\sdk\components\libraries\button;..\sdk\components\libraries\cli;..\sdk\components\libraries\crc16;..\sdk\components\libraries\crc32;..\sdk\components\libraries\crypto;..\sdk\components\libraries\csense;..\sdk\components\libraries\csense_drv;..\sdk\components\libraries\delay;..\sdk\components\libraries\ecc;..\sdk\components\libraries\experimental_section_vars;..\sdk\components\libraries\experimental_task_manager;..\sdk\components\libraries\fds;..\sdk\components\libraries\fifo;..\sdk\components\libraries\fstorage;..\sdk\components\libraries\gfx;..\sdk\components\libraries\gpiote;..\sdk\components\libraries\hardfault;..\sdk\components\libraries\hci;..\sdk\components\libraries\led_softblink;..\sdk\components\libraries\log;..\sdk\components\libraries\log\src;..\sdk\components\libraries\low_power_pwm;..\sdk\components\libraries\mem_manager;..\sdk\components\libraries\memobj;..\sdk\components\libraries\mpu;..\sdk\components\libraries\mutex;..\sdk\components\libraries\pwm;..\sdk\components\libraries\pwr_mgmt;..\sdk\components\libraries\queue;..\sdk\components\libraries\ringbuf;..\sdk\components\libraries\scheduler;..\sdk\components\libraries\sdcard;..\sdk\components\libraries\slip;..\sdk\components\libraries\sortlist;..\sdk\components\libraries\spi_mngr;..\sdk\components\libraries\stack_guard;..\sdk\components\libraries\strerror;..\sdk\components\libraries\svc;..\sdk\components\libraries\timer;..\sdk\components\libraries\twi_mngr;..\sdk\components\libraries\twi_sensor;..\sdk\components\libraries\uart;..\sdk\components\libraries\usbd;..\sdk\components\libraries\usbd\class\audio;..\sdk\components\libraries\usbd\class\cdc;..\sdk\components\libraries\usbd\class\cdc\acm;..\sdk\components\libraries\usbd\class\hid;..\sdk\components\libraries\usbd\class\hid\generic;..\sdk\components\libraries\usbd\class\hid\kbd;..\sdk\components\libraries\usbd\class\hid\mouse;..\sdk\components\libraries\usbd\class\msc;..\sdk\components\libraries\util;..\sdk\components\nfc\ndef\conn_hand_parser;..\sdk\components\nfc\ndef\conn_hand_parser\ac_rec_parser;..\sdk\components\nfc\ndef\conn_hand_parser\ble_oob_advdata_parser;..\sdk\components\nfc\ndef\conn_hand_parser\le_oob_rec_parser;..\sdk\components\nfc\ndef\connection_handover\ac_rec;..\sdk\components\nfc\ndef\connection_handover\ble_oob_advdata;..\sdk\components\nfc\ndef\connection_handover\ble_pair_lib;..\sdk\components\nfc\ndef\connection_handover\ble_pair_msg;..\sdk\components\nfc\ndef\connection_handover\common;..\sdk\components\nfc\ndef\connection_handover\ep_oob_rec;..\sdk\components\nfc\ndef\connection_handover\hs_rec;..\sdk\components\nfc\ndef\connection_handover\le_oob_rec;..\sdk\components\nfc\ndef\generic\message;..\sdk\components\nfc\ndef\generic\record;..\sdk\components\nfc\ndef\launchapp;..\sdk\components\nfc\ndef\parser\message;..\sdk\components\nfc\ndef\parser\record;..\sdk\components\nfc\ndef\text;..\sdk\components\nfc\ndef\uri;..\sdk\components\nfc\platform;..\sdk\components\nfc\t2t_lib;..\sdk\components\nfc\t2t_parser;..\sdk\components\nfc\t4t_lib;..\sdk\components\nfc\t4t_parser\apdu;..\sdk\components\nfc\t4t_parser\cc_file;..\sdk\components\nfc\t4t_parser\hl_detection_procedure;..\sdk\components\nfc\t4t_parser\tlv;..\sdk\components\softdevice\common;..\sdk\components\softdevice\s140\headers;..\sdk\components\softdevice\s140\headers\nrf52;..\sdk\external\fprintf;..\sdk\external\segger_rtt;..\sdk\external\utf_converter;..\sdk\integration\nrfx;..\sdk\integration\nrfx\legacy;..\sdk\modules\nrfx;..\sdk\modules\nrfx\drivers\include;..\sdk\modules\nrfx\hal;.\config\;.\src\;..\libznordic\include;..\sdk\external\fatfs\port;..\sdk\external\fatfs\src;..\sdk\components\libraries\block_dev;..\sdk\components\libraries\block_dev\sdc\;..\sdk\external\protothreads\;..\sdk\external\protothreads\pt-1.4\
@@ -1654,6 +1654,11 @@
1
..\sdk\modules\nrfx\drivers\src\nrfx_twim.c
+
+ nrfx_pwm.c
+ 1
+ ..\sdk\modules\nrfx\drivers\src\nrfx_pwm.c
+
@@ -3059,6 +3064,16 @@
+
+ nrf_block_dev_sdc.c
+ 1
+ ..\sdk\components\libraries\block_dev\sdc\nrf_block_dev_sdc.c
+
+
+ app_sdcard.c
+ 1
+ ..\sdk\components\libraries\sdcard\app_sdcard.c
+
@@ -3708,6 +3723,21 @@
+ FATFS
+
+
+ diskio_blkdev.c
+ 1
+ ..\sdk\external\fatfs\port\diskio_blkdev.c
+
+
+ ff.c
+ 1
+ ..\sdk\external\fatfs\src\ff.c
+
+
+
+
::CMSIS
@@ -5363,6 +5393,11 @@
1
..\sdk\modules\nrfx\drivers\src\nrfx_twim.c
+
+ nrfx_pwm.c
+ 1
+ ..\sdk\modules\nrfx\drivers\src\nrfx_pwm.c
+
@@ -6768,6 +6803,16 @@
+
+ nrf_block_dev_sdc.c
+ 1
+ ..\sdk\components\libraries\block_dev\sdc\nrf_block_dev_sdc.c
+
+
+ app_sdcard.c
+ 1
+ ..\sdk\components\libraries\sdcard\app_sdcard.c
+
@@ -7417,6 +7462,21 @@
+ FATFS
+
+
+ diskio_blkdev.c
+ 1
+ ..\sdk\external\fatfs\port\diskio_blkdev.c
+
+
+ ff.c
+ 1
+ ..\sdk\external\fatfs\src\ff.c
+
+
+
+
::CMSIS
diff --git a/app/config/sdk_config.h b/app/config/sdk_config.h
index ab5b0b8..883d8c1 100644
--- a/app/config/sdk_config.h
+++ b/app/config/sdk_config.h
@@ -2784,13 +2784,13 @@
// NRFX_PWM_ENABLED - nrfx_pwm - PWM peripheral driver
//==========================================================
#ifndef NRFX_PWM_ENABLED
-#define NRFX_PWM_ENABLED 0
+#define NRFX_PWM_ENABLED 1
#endif
// NRFX_PWM0_ENABLED - Enable PWM0 instance
#ifndef NRFX_PWM0_ENABLED
-#define NRFX_PWM0_ENABLED 0
+#define NRFX_PWM0_ENABLED 1
#endif
// NRFX_PWM1_ENABLED - Enable PWM1 instance
@@ -5023,7 +5023,7 @@
// PWM_ENABLED - nrf_drv_pwm - PWM peripheral driver - legacy layer
//==========================================================
#ifndef PWM_ENABLED
-#define PWM_ENABLED 0
+#define PWM_ENABLED 1
#endif
// PWM_DEFAULT_CONFIG_OUT0_PIN - Out0 pin <0-31>
@@ -5123,7 +5123,7 @@
#ifndef PWM0_ENABLED
-#define PWM0_ENABLED 0
+#define PWM0_ENABLED 1
#endif
// PWM1_ENABLED - Enable PWM1 instance
@@ -6195,7 +6195,7 @@
#ifndef APP_PWM_ENABLED
-#define APP_PWM_ENABLED 0
+#define APP_PWM_ENABLED 1
#endif
// APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler
@@ -6222,7 +6222,7 @@
// APP_SDCARD_ENABLED - app_sdcard - SD/MMC card support using SPI
//==========================================================
#ifndef APP_SDCARD_ENABLED
-#define APP_SDCARD_ENABLED 0
+#define APP_SDCARD_ENABLED 1
#endif
// APP_SDCARD_SPI_INSTANCE - SPI instance used
diff --git a/app/main.c b/app/main.c
index c0b11f9..f845f4a 100644
--- a/app/main.c
+++ b/app/main.c
@@ -7,6 +7,10 @@
#include "zble_module.h"
#include "zdatachannel_service.h"
+#include "ff.h"
+#include "diskio_blkdev.h"
+#include "nrf_block_dev_sdc.h"
+
#if 0
void qingfengboard_test(void) {
// 测试LED
@@ -85,9 +89,11 @@ static void board_init() {
// adc_module_heart_elect_channel_init(NRF_SAADC_INPUT_AIN2);
// board_spi_init();
- board_i2c_init();
+ // board_i2c_init();
}
+
+
int main(void) {
zsys_init();
NRF_LOG_INFO("compile time :%s", __TIME__);
@@ -104,8 +110,11 @@ int main(void) {
NRF_SDH_BLE_OBSERVER(m_ble_observer, 3, ble_evt_handler, NULL);
- ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb));
- ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(100), NULL));
+ // ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb));
+ // ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(100), NULL));
+
+ // fatfs_test_write();
+ pwm_trigger();
zble_module_start_adv();
zsys_loop();
diff --git a/app/src/board.c b/app/src/board.c
index 940461e..03f79d4 100644
--- a/app/src/board.c
+++ b/app/src/board.c
@@ -3,6 +3,11 @@
#include "app_timer.h"
#include "nrf_gpio.h"
#include "sys.h"
+//
+#include "diskio_blkdev.h"
+#include "ff.h"
+#include "nrf_block_dev_sdc.h"
+#include "nrf_drv_pwm.h"
static int16_t adc_channel_read_val(uint16_t channel) {
nrf_saadc_value_t value;
@@ -180,9 +185,41 @@ ret_code_t board_spi_transfer_test() {
void screen_init() {}
void screen_spi_translate_onebyte() {}
+
+static nrf_drv_pwm_t m_pwm0 = NRF_DRV_PWM_INSTANCE(0);
+static nrf_pwm_values_individual_t m_demo1_seq_values;
+
+void pwm_trigger() {
+ nrf_drv_pwm_config_t const config0 = {
+ .output_pins = {11},
+ .irq_priority = APP_IRQ_PRIORITY_LOWEST,
+ .base_clock = NRF_PWM_CLK_125kHz,
+ .count_mode = NRF_PWM_MODE_UP,
+ .top_value = 5,
+ .load_mode = NRF_PWM_LOAD_INDIVIDUAL,
+ .step_mode = NRF_PWM_STEP_AUTO,
+ };
+ APP_ERROR_CHECK(nrf_drv_pwm_init(&m_pwm0, &config0, NULL));
+
+ static nrf_pwm_sequence_t const m_demo1_seq = {
+ .values.p_individual = &m_demo1_seq_values,
+ .length = NRF_PWM_VALUES_LENGTH(m_demo1_seq_values),
+ .repeats = 0,
+ .end_delay = 0,
+ };
+
+ m_demo1_seq_values.channel_0 = 2;
+ m_demo1_seq_values.channel_1 = 0;
+ m_demo1_seq_values.channel_2 = 0;
+ m_demo1_seq_values.channel_3 = 0;
+
+ (void)nrf_drv_pwm_simple_playback(&m_pwm0, &m_demo1_seq, 1, NRF_DRV_PWM_FLAG_LOOP);
+}
+
/*******************************************************************************
* I2C *
*******************************************************************************/
+
#define TWI_SCL_M 30 // I2C SCL引脚
#define TWI_SDA_M 31 // I2C SDA引脚
static const nrf_drv_twi_t m_twi_master = NRF_DRV_TWI_INSTANCE(1);
@@ -201,7 +238,96 @@ void board_i2c_init() {
nrf_drv_twi_enable(&m_twi_master);
}
-void board_i2c_write(uint8_t addr, uint8_t* data, uint8_t len) {
- nrf_drv_twi_tx(&m_twi_master, addr, data, len, false);
-}
+void board_i2c_write(uint8_t addr, uint8_t* data, uint8_t len) { nrf_drv_twi_tx(&m_twi_master, addr, data, len, false); }
+
+#define FILE_NAME "NORDIC.TXT"
+#define TEST_STRING "SD card example."
+
+// #define SPI_MISO_PIN 31
+// #define SPI_SS_PIN 20
+// #define SPI_SCK_PIN 29
+// #define SPI_MOSI_PIN 30
+
+#define SDC_SCK_PIN 29 ///< SDC serial clock (SCK) pin.
+#define SDC_MOSI_PIN 30 ///< SDC serial data in (DI) pin.
+#define SDC_MISO_PIN 31 ///< SDC serial data out (DO) pin.
+#define SDC_CS_PIN 28 ///< SDC chip select (CS) pin.
+
+NRF_BLOCK_DEV_SDC_DEFINE(m_block_dev_sdc, NRF_BLOCK_DEV_SDC_CONFIG(SDC_SECTOR_SIZE, APP_SDCARD_CONFIG(SDC_MOSI_PIN, SDC_MISO_PIN, SDC_SCK_PIN, SDC_CS_PIN)), NFR_BLOCK_DEV_INFO_CONFIG("Nordic", "SDC", "1.00"));
+void fatfs_init() {}
+void fatfs_test_write() {
+ static FATFS fs;
+ static DIR dir;
+ static FILINFO fno;
+ static FIL file;
+
+ uint32_t bytes_written;
+ FRESULT ff_result;
+ DSTATUS disk_state = STA_NOINIT;
+
+ // Initialize FATFS disk I/O interface by providing the block device.
+ static diskio_blkdev_t drives[] = {DISKIO_BLOCKDEV_CONFIG(NRF_BLOCKDEV_BASE_ADDR(m_block_dev_sdc, block_dev), NULL)};
+
+ diskio_blockdev_register(drives, ARRAY_SIZE(drives));
+
+ NRF_LOG_INFO("Initializing disk 0 (SDC)...");
+ for (uint32_t retries = 3; retries && disk_state; --retries) {
+ disk_state = disk_initialize(0);
+ }
+ if (disk_state) {
+ NRF_LOG_INFO("Disk initialization failed.");
+ return;
+ }
+
+ uint32_t blocks_per_mb = (1024uL * 1024uL) / m_block_dev_sdc.block_dev.p_ops->geometry(&m_block_dev_sdc.block_dev)->blk_size;
+ uint32_t capacity = m_block_dev_sdc.block_dev.p_ops->geometry(&m_block_dev_sdc.block_dev)->blk_count / blocks_per_mb;
+ NRF_LOG_INFO("Capacity: %d MB", capacity);
+
+ NRF_LOG_INFO("Mounting volume...");
+ ff_result = f_mount(&fs, "", 1);
+ if (ff_result) {
+ NRF_LOG_INFO("Mount failed.");
+ return;
+ }
+
+ NRF_LOG_INFO("\r\n Listing directory: /");
+ ff_result = f_opendir(&dir, "/");
+ if (ff_result) {
+ NRF_LOG_INFO("Directory listing failed!");
+ return;
+ }
+
+ do {
+ ff_result = f_readdir(&dir, &fno);
+ if (ff_result != FR_OK) {
+ NRF_LOG_INFO("Directory read failed.");
+ return;
+ }
+
+ if (fno.fname[0]) {
+ if (fno.fattrib & AM_DIR) {
+ NRF_LOG_RAW_INFO(" %s", (uint32_t)fno.fname);
+ } else {
+ NRF_LOG_RAW_INFO("%9lu %s", fno.fsize, (uint32_t)fno.fname);
+ }
+ }
+ } while (fno.fname[0]);
+ NRF_LOG_RAW_INFO("");
+
+ NRF_LOG_INFO("Writing to file " FILE_NAME "...");
+ ff_result = f_open(&file, FILE_NAME, FA_READ | FA_WRITE | FA_OPEN_APPEND);
+ if (ff_result != FR_OK) {
+ NRF_LOG_INFO("Unable to open or create file: " FILE_NAME ".");
+ return;
+ }
+
+ ff_result = f_write(&file, TEST_STRING, sizeof(TEST_STRING) - 1, (UINT*)&bytes_written);
+ if (ff_result != FR_OK) {
+ NRF_LOG_INFO("Write failed\r\n.");
+ } else {
+ NRF_LOG_INFO("%d bytes written.", bytes_written);
+ }
+ (void)f_close(&file);
+ return;
+}
\ No newline at end of file
diff --git a/app/src/board.h b/app/src/board.h
index 47a7fce..331f855 100644
--- a/app/src/board.h
+++ b/app/src/board.h
@@ -54,4 +54,11 @@ void board_i2c_init();
void board_i2c_write(uint8_t addr, uint8_t* data, uint8_t len);
void screen_init();
-void screen_spi_translate_onebyte();
\ No newline at end of file
+void screen_spi_translate_onebyte();
+
+/*******************************************************************************
+ * FATFS *
+ *******************************************************************************/
+void fatfs_init();
+void fatfs_test_write();
+void pwm_trigger();
\ No newline at end of file
diff --git a/sdk b/sdk
index 4583631..9ff458f 160000
--- a/sdk
+++ b/sdk
@@ -1 +1 @@
-Subproject commit 458363107275ea8f80171b824a634780a1d84eb3
+Subproject commit 9ff458fcdef52d2ff06829ec783406af521844da