Browse Source

i2C is OK

3lead_uart_test_ok_version
zhaohe 1 year ago
parent
commit
877c4d54b7
  1. 10
      README.md
  2. 112
      app/app.uvoptx
  3. 30
      app/app.uvprojx
  4. 8
      app/config/sdk_config.h
  5. 9
      app/main.c
  6. 27
      app/src/board.c
  7. 6
      app/src/board.h

10
README.md

@ -26,6 +26,16 @@ sdk\components\boards\pca10100.h
AIN2 -> 光感
I2C
#define TWI_SCL_M 28 //I2C SCL引脚
#define TWI_SDA_M 30 //I2C SDA引脚
------------------------------------
PIN4 PIN30/PIN31 PIN28/PIN29 PIN11/PIN20
```

112
app/app.uvoptx

@ -787,6 +787,42 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\sdk\integration\nrfx\legacy\nrf_drv_twi.c</PathWithFileName>
<FilenameWithoutPath>nrf_drv_twi.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\sdk\modules\nrfx\drivers\src\nrfx_twi.c</PathWithFileName>
<FilenameWithoutPath>nrfx_twi.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\sdk\modules\nrfx\drivers\src\nrfx_twim.c</PathWithFileName>
<FilenameWithoutPath>nrfx_twim.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -797,7 +833,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>32</FileNumber>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -809,7 +845,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>33</FileNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -821,7 +857,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>34</FileNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -833,7 +869,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>35</FileNumber>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -845,7 +881,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>36</FileNumber>
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -857,7 +893,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>37</FileNumber>
<FileNumber>40</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -869,7 +905,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>38</FileNumber>
<FileNumber>41</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -881,7 +917,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>39</FileNumber>
<FileNumber>42</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -893,7 +929,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>40</FileNumber>
<FileNumber>43</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -905,7 +941,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>41</FileNumber>
<FileNumber>44</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -917,7 +953,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>42</FileNumber>
<FileNumber>45</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -929,7 +965,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>43</FileNumber>
<FileNumber>46</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -941,7 +977,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>44</FileNumber>
<FileNumber>47</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -953,7 +989,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>45</FileNumber>
<FileNumber>48</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -965,7 +1001,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>46</FileNumber>
<FileNumber>49</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -977,7 +1013,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>47</FileNumber>
<FileNumber>50</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -989,7 +1025,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>48</FileNumber>
<FileNumber>51</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1001,7 +1037,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>49</FileNumber>
<FileNumber>52</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1013,7 +1049,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>50</FileNumber>
<FileNumber>53</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1025,7 +1061,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>51</FileNumber>
<FileNumber>54</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1037,7 +1073,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>52</FileNumber>
<FileNumber>55</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1049,7 +1085,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>53</FileNumber>
<FileNumber>56</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1061,7 +1097,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>54</FileNumber>
<FileNumber>57</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1073,7 +1109,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>55</FileNumber>
<FileNumber>58</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1085,7 +1121,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>56</FileNumber>
<FileNumber>59</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1105,7 +1141,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>57</FileNumber>
<FileNumber>60</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1117,7 +1153,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>58</FileNumber>
<FileNumber>61</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1129,7 +1165,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>59</FileNumber>
<FileNumber>62</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1141,7 +1177,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>60</FileNumber>
<FileNumber>63</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1153,7 +1189,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>61</FileNumber>
<FileNumber>64</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1165,7 +1201,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>62</FileNumber>
<FileNumber>65</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1185,7 +1221,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>63</FileNumber>
<FileNumber>66</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1197,7 +1233,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>64</FileNumber>
<FileNumber>67</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1209,7 +1245,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>65</FileNumber>
<FileNumber>68</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1229,7 +1265,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>66</FileNumber>
<FileNumber>69</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1241,7 +1277,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>67</FileNumber>
<FileNumber>70</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1253,7 +1289,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>68</FileNumber>
<FileNumber>71</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1273,7 +1309,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>69</FileNumber>
<FileNumber>72</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

30
app/app.uvprojx

@ -1639,6 +1639,21 @@
<FileType>1</FileType>
<FilePath>..\sdk\integration\nrfx\legacy\nrf_drv_spi.c</FilePath>
</File>
<File>
<FileName>nrf_drv_twi.c</FileName>
<FileType>1</FileType>
<FilePath>..\sdk\integration\nrfx\legacy\nrf_drv_twi.c</FilePath>
</File>
<File>
<FileName>nrfx_twi.c</FileName>
<FileType>1</FileType>
<FilePath>..\sdk\modules\nrfx\drivers\src\nrfx_twi.c</FilePath>
</File>
<File>
<FileName>nrfx_twim.c</FileName>
<FileType>1</FileType>
<FilePath>..\sdk\modules\nrfx\drivers\src\nrfx_twim.c</FilePath>
</File>
</Files>
</Group>
<Group>
@ -5333,6 +5348,21 @@
<FileType>1</FileType>
<FilePath>..\sdk\integration\nrfx\legacy\nrf_drv_spi.c</FilePath>
</File>
<File>
<FileName>nrf_drv_twi.c</FileName>
<FileType>1</FileType>
<FilePath>..\sdk\integration\nrfx\legacy\nrf_drv_twi.c</FilePath>
</File>
<File>
<FileName>nrfx_twi.c</FileName>
<FileType>1</FileType>
<FilePath>..\sdk\modules\nrfx\drivers\src\nrfx_twi.c</FilePath>
</File>
<File>
<FileName>nrfx_twim.c</FileName>
<FileType>1</FileType>
<FilePath>..\sdk\modules\nrfx\drivers\src\nrfx_twim.c</FilePath>
</File>
</Files>
</Group>
<Group>

8
app/config/sdk_config.h

@ -4124,7 +4124,7 @@
// <e> NRFX_TWIM_ENABLED - nrfx_twim - TWIM peripheral driver
//==========================================================
#ifndef NRFX_TWIM_ENABLED
#define NRFX_TWIM_ENABLED 0
#define NRFX_TWIM_ENABLED 1
#endif
// <q> NRFX_TWIM0_ENABLED - Enable TWIM0 instance
@ -4363,7 +4363,7 @@
// <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver
//==========================================================
#ifndef NRFX_TWI_ENABLED
#define NRFX_TWI_ENABLED 0
#define NRFX_TWI_ENABLED 1
#endif
// <q> NRFX_TWI0_ENABLED - Enable TWI0 instance
@ -5880,7 +5880,7 @@
// <e> TWI_ENABLED - nrf_drv_twi - TWI/TWIM peripheral driver - legacy layer
//==========================================================
#ifndef TWI_ENABLED
#define TWI_ENABLED 0
#define TWI_ENABLED 1
#endif
// <o> TWI_DEFAULT_CONFIG_FREQUENCY - Frequency
@ -5940,7 +5940,7 @@
// <e> TWI1_ENABLED - Enable TWI1 instance
//==========================================================
#ifndef TWI1_ENABLED
#define TWI1_ENABLED 0
#define TWI1_ENABLED 1
#endif
// <q> TWI1_USE_EASY_DMA - Use EasyDMA (if present)

9
app/main.c

@ -73,8 +73,10 @@ static void test_tx_timer_cb(void* p_context) {
// zdatachannel_data_send((uint8_t*)&data, &txlen);
// ZLOGI("adc channel %d %d", adc_module_heart_elect_channel_read_val(), adc_module_battery_channel_read_val());
ZLOGI("board_spi_transfer_test")
board_spi_transfer_test();
ZLOGI("test_tx_timer_cb")
// board_spi_transfer_test();
uint8_t data[] = {0xAA, 0xBB};
board_i2c_write(0x3C, data, 2);
}
static void board_init() {
@ -82,7 +84,8 @@ static void board_init() {
// adc_module_battery_channel_init(NRF_SAADC_INPUT_VDD);
// adc_module_heart_elect_channel_init(NRF_SAADC_INPUT_AIN2);
board_spi_init();
// board_spi_init();
board_i2c_init();
}
int main(void) {

27
app/src/board.c

@ -179,4 +179,29 @@ ret_code_t board_spi_transfer_test() {
}
void screen_init() {}
void screen_spi_translate_onebyte() {}
void screen_spi_translate_onebyte() {}
/*******************************************************************************
* 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);
void board_i2c_init() {
const nrf_drv_twi_config_t config = {
.scl = TWI_SCL_M,
.sda = TWI_SDA_M,
.frequency = NRF_DRV_TWI_FREQ_100K,
.interrupt_priority = APP_IRQ_PRIORITY_HIGH,
.clear_bus_init = false,
};
ZERROR_CHECK(nrf_drv_twi_init(&m_twi_master, &config, NULL, NULL));
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);
}

6
app/src/board.h

@ -2,6 +2,7 @@
#include <stdio.h>
#include "nrf_drv_saadc.h"
#include "nrf_drv_twi.h"
#include "sys.h"
/*******************************************************************************
@ -45,9 +46,12 @@ int16_t adc_module_heart_elect_channel_read_val();
* SPI *
*******************************************************************************/
void board_spi_init();
void board_spi_init();
ret_code_t board_spi_transfer(uint8_t const* p_tx_buffer, uint8_t tx_buffer_length, uint8_t* p_rx_buffer, uint8_t rx_buffer_length);
ret_code_t board_spi_transfer_test();
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();
Loading…
Cancel
Save