add lcd
This commit is contained in:
parent
de3a8210c7
commit
cbe5266c25
|
@ -2,14 +2,8 @@ from building import *
|
||||||
import os
|
import os
|
||||||
|
|
||||||
cwd = GetCurrentDir()
|
cwd = GetCurrentDir()
|
||||||
# src = Glob('*.c')
|
|
||||||
src = [
|
|
||||||
'main.c',
|
|
||||||
]
|
|
||||||
CPPPATH = [cwd]
|
CPPPATH = [cwd]
|
||||||
|
src = Glob('*.c')
|
||||||
if GetDepend(['PKG_USING_RTDUINO']) and not GetDepend(['RTDUINO_NO_SETUP_LOOP']):
|
|
||||||
src += ['arduino_main.cpp']
|
|
||||||
|
|
||||||
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
|
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*
|
||||||
|
* Change Logs:
|
||||||
|
* Date Author Notes
|
||||||
|
* 2024-07-08 Nino the first version
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <rtthread.h>
|
||||||
|
#include <rtdevice.h>
|
||||||
|
#include <board.h>
|
||||||
|
|
||||||
|
#include <drv_lcd.h>
|
||||||
|
|
||||||
|
void app_lcd_string(void){
|
||||||
|
lcd_clear(WHITE);
|
||||||
|
|
||||||
|
/* set the background color and foreground color */
|
||||||
|
lcd_set_color(WHITE, BLACK);
|
||||||
|
|
||||||
|
/* show some string on lcd */
|
||||||
|
lcd_show_string(10, 69, 16, "Hello, RT-Thread!");
|
||||||
|
lcd_show_string(10, 69 + 16, 24, "RT-Thread");
|
||||||
|
lcd_show_string(10, 69 + 16 + 24, 32, "RT-Thread");
|
||||||
|
|
||||||
|
/* draw a line on lcd */
|
||||||
|
lcd_draw_line(0, 69 + 16 + 24 + 32, 240, 69 + 16 + 24 + 32);
|
||||||
|
rt_kprintf("string lcd\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void app_lcd_circle(void){
|
||||||
|
/* draw a concentric circles */
|
||||||
|
lcd_draw_point(120, 194);
|
||||||
|
for (int i = 0; i < 46; i += 4)
|
||||||
|
{
|
||||||
|
lcd_draw_circle(120, 194, i);
|
||||||
|
}
|
||||||
|
rt_kprintf("circle lcd\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void app_lcd_clean(void){
|
||||||
|
lcd_clear(WHITE);
|
||||||
|
rt_kprintf("clean lcd\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
MSH_CMD_EXPORT(app_lcd_string, show string on LCD);
|
||||||
|
MSH_CMD_EXPORT(app_lcd_circle, show circle on LCD);
|
||||||
|
MSH_CMD_EXPORT(app_lcd_clean, clean LCD);
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*
|
||||||
|
* Change Logs:
|
||||||
|
* Date Author Notes
|
||||||
|
* 2023-5-10 ShiHao first version
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <rtthread.h>
|
||||||
|
#include <rtdevice.h>
|
||||||
|
#include <board.h>
|
||||||
|
|
||||||
|
#define DBG_TAG "main"
|
||||||
|
#define DBG_LVL DBG_LOG
|
||||||
|
#include <rtdbg.h>
|
||||||
|
|
||||||
|
#include <drv_lcd.h>
|
||||||
|
#include <rttlogo.h>
|
||||||
|
|
||||||
|
/* 配置 LED 灯引脚 */
|
||||||
|
#define PIN_LED_B GET_PIN(F, 11) // PF11 : LED_B --> LED
|
||||||
|
#define PIN_LED_R GET_PIN(F, 12) // PF12 : LED_R --> LED
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
// lcd_clear(WHITE);
|
||||||
|
|
||||||
|
// /* show RT-Thread logo */
|
||||||
|
// lcd_show_image(0, 0, 240, 69, image_rttlogo);
|
||||||
|
|
||||||
|
// /* set the background color and foreground color */
|
||||||
|
// lcd_set_color(WHITE, BLACK);
|
||||||
|
|
||||||
|
// /* show some string on lcd */
|
||||||
|
// lcd_show_string(10, 69, 16, "Hello, RT-Thread!");
|
||||||
|
// lcd_show_string(10, 69 + 16, 24, "RT-Thread");
|
||||||
|
// lcd_show_string(10, 69 + 16 + 24, 32, "RT-Thread");
|
||||||
|
|
||||||
|
// /* draw a line on lcd */
|
||||||
|
// lcd_draw_line(0, 69 + 16 + 24 + 32, 240, 69 + 16 + 24 + 32);
|
||||||
|
|
||||||
|
// /* draw a concentric circles */
|
||||||
|
// lcd_draw_point(120, 194);
|
||||||
|
// for (int i = 0; i < 46; i += 4)
|
||||||
|
// {
|
||||||
|
// lcd_draw_circle(120, 194, i);
|
||||||
|
// }
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,24 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2006-2024, RT-Thread Development Team
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*
|
|
||||||
* Change Logs:
|
|
||||||
* Date Author Notes
|
|
||||||
* 2024-04-08 Li ZhenHong first version
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <Arduino.h>
|
|
||||||
|
|
||||||
void setup(void)
|
|
||||||
{
|
|
||||||
/* put your setup code here, to run once: */
|
|
||||||
Serial.begin();
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop(void)
|
|
||||||
{
|
|
||||||
/* put your main code here, to run repeatedly: */
|
|
||||||
Serial.println("Hello Arduino!");
|
|
||||||
delay(800);
|
|
||||||
}
|
|
|
@ -1,69 +0,0 @@
|
||||||
# stm32f407-rt-spark 开发板的Arduino生态兼容说明
|
|
||||||
|
|
||||||
## 1 RTduino - RT-Thread的Arduino生态兼容层
|
|
||||||
|
|
||||||
stm32f407-rt-spark 开发板已经完整适配了[RTduino软件包](https://github.com/RTduino/RTduino),即RT-Thread的Arduino生态兼容层。用户可以按照Arduino的编程习惯来操作该BSP,并且可以使用大量Arduino社区丰富的库,是对RT-Thread生态的极大增强。更多信息,请参见[RTduino软件包说明文档](https://github.com/RTduino/RTduino)。
|
|
||||||
|
|
||||||
### 1.1 如何开启针对本BSP的Arduino生态兼容层
|
|
||||||
|
|
||||||
Env 工具下敲入 menuconfig 命令,或者 RT-Thread Studio IDE 下选择 RT-Thread Settings:
|
|
||||||
|
|
||||||
```Kconfig
|
|
||||||
Hardware Drivers Config --->
|
|
||||||
Onboard Peripheral Drivers --->
|
|
||||||
[*] Compatible with Arduino Ecosystem (RTduino)
|
|
||||||
```
|
|
||||||
|
|
||||||
## 2 Arduino引脚排布
|
|
||||||
|
|
||||||
更多引脚布局相关信息参见 [pins_arduino.c](pins_arduino.c) 和 [pins_arduino.h](pins_arduino.h)。
|
|
||||||
|
|
||||||
![Rt-spark_Rtduino_Pin_Map.drawio](Rt-spark_Rtduino_Pin_Map.drawio.png)
|
|
||||||
|
|
||||||
| Arduino引脚编号 | STM32引脚编号 | 5V容忍 | 备注 |
|
|
||||||
| ------------------- | --------- | ---- | ------------------------------------------------------------------------- |
|
|
||||||
| 0 (D0) | GET_PIN(A, 10) | 是 | Serial-RX,默认被RT-Thread的UART设备框架uart1接管 |
|
|
||||||
| 1 (D1) | GET_PIN(A, 9) | 是 | Serial-TX,默认被RT-Thread的UART设备框架uart1接管 |
|
|
||||||
| 2 (D2) | GET_PIN(A, 8) | 是 | |
|
|
||||||
| 3 (D3) | GET_PIN(B, 10) | 是 | PWM2-CH3,默认被RT-Thread的PWM设备框架pwm2接管 |
|
|
||||||
| 4 (D4) | GET_PIN(A, 1) | 是 | |
|
|
||||||
| 5 (D5) | GET_PIN(B, 14) | 是 | |
|
|
||||||
| 6 (D6) | GET_PIN(B, 11) | 是 | PWM2-CH4,默认被RT-Thread的PWM设备框架pwm2接管 |
|
|
||||||
| 7 (D7) | GET_PIN(B, 15) | 是 | |
|
|
||||||
| 8 (D8) | GET_PIN(F, 15) | 是 | |
|
|
||||||
| 9 (D9) | GET_PIN(E, 11) | 是 | PWM1-CH2,默认被RT-Thread的PWM设备框架pwm1接管 |
|
|
||||||
| 10 (D10) | GET_PIN(E, 13) | 是 | PWM1-CH3,默认被RT-Thread的PWM设备框架pwm1接管 |
|
|
||||||
| 11 (D11) | GET_PIN(D, 12) | 是 | PWM4-CH1,默认被RT-Thread的PWM设备框架pwm4接管 |
|
|
||||||
| 12 (D12) | GET_PIN(D, 10) | 是 | |
|
|
||||||
| 13 (D13) | GET_PIN(D, 8) | 是 | |
|
|
||||||
| 14 (D14) | GET_PIN(E, 14) | 是 | |
|
|
||||||
| 15 (D15) | GET_PIN(E, 12) | 是 | |
|
|
||||||
| 16 (D16) | GET_PIN(E, 15) | 是 | |
|
|
||||||
| 17 (D17) | GET_PIN(D, 9) | 是 | |
|
|
||||||
| 18 (D18) | GET_PIN(G, 2) | 是 | |
|
|
||||||
| 19 (D19) | GET_PIN(B, 2) | 是 | |
|
|
||||||
| 20 (D20) | GET_PIN(G, 0) | 是 | |
|
|
||||||
| 21 (D21) | GET_PIN(A, 0) | 是 | |
|
|
||||||
| 22 (D22) | GET_PIN(G, 5) | 是 | SSPI1-SCK,默认被RT-Thread的SPI设备框架sspi1接管|
|
|
||||||
| 23 (D23) | GET_PIN(G, 3) | 是 | SSPI1-MISO,默认被RT-Thread的SPI设备框架sspi1接管 |
|
|
||||||
| 24 (D24) | GET_PIN(G, 1) | 是 | SSPI1-MOSI,默认被RT-Thread的SPI设备框架sspi1接管 |
|
|
||||||
| 25 (D25) | GET_PIN(G, 7) | 是 | I2C1-SCL,默认被RT-Thread的I2C设备框架i2c1接管 |
|
|
||||||
| 26 (D26) | GET_PIN(D, 7) | 是 | I2C1-SDA,默认被RT-Thread的I2C设备框架i2c1接管 |
|
|
||||||
| 27 (D27) | GET_PIN(B, 6) | 是 | I2C2-SCL,默认被RT-Thread的I2C设备框架i2c2接管 |
|
|
||||||
| 28 (D28) | GET_PIN(B, 7) | 是 | I2C2-SDA,默认被RT-Thread的I2C设备框架i2c2接管 |
|
|
||||||
| 29 (D29) | GET_PIN(G, 6) | 是 | |
|
|
||||||
| 30 (D30) | GET_PIN(G, 4) | 是 | |
|
|
||||||
| 31 (D31) | GET_PIN(A, 2) | 是 | Serial2-TX,默认被RT-Thread的UART设备框架uart2接管 |
|
|
||||||
| 32 (D32) | GET_PIN(A, 3) | 是 | Serial2-RX,默认被RT-Thread的UART设备框架uart2接管 |
|
|
||||||
| 33 (D33) | GET_PIN(F, 12) | 是 | 板载用户R_LED |
|
|
||||||
| 34 (D34) | GET_PIN(F, 11) | 是 | 板载用户B_LED |
|
|
||||||
| 35 (D35) | GET_PIN(B, 0) | 是 | 板载蜂鸣器 |
|
|
||||||
| 36 (D36) | GET_PIN(C, 5) | 是 | 板载按键KEY_UP |
|
|
||||||
| 37 (D37) | GET_PIN(C, 1) | 是 | 板载按键KEY_DOWM |
|
|
||||||
| 38 (D38) | GET_PIN(C, 0) | 是 | 板载按键KEY_LEFT |
|
|
||||||
| 39 (D39) | GET_PIN(C, 4) | 是 | 板载按键KEY_RIGHT |
|
|
||||||
| 40 (A0) | GET_PIN(F, 6) | 是 | ADC3-CH4,默认被RT-Thread的ADC设备框架adc3接管 |
|
|
||||||
| 41 (A1) | GET_PIN(F, 7) | 是 | ADC3-CH5,默认被RT-Thread的ADC设备框架adc3接管 |
|
|
||||||
| 42 (A2) | GET_PIN(F, 4) | 是 | ADC3-CH14,默认被RT-Thread的ADC设备框架adc3接管 |
|
|
||||||
| 43 (A3) | GET_PIN(F, 5) | 是 | ADC3-CH15,默认被RT-Thread的ADC设备框架adc3接管 |
|
|
||||||
| 44 (DAC0) | GET_PIN(A, 4) | 否 | DAC1-CH1,默认被RT-Thread的DAC设备框架dac1接管 |
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.9 MiB |
|
@ -1,9 +0,0 @@
|
||||||
from building import *
|
|
||||||
|
|
||||||
cwd = GetCurrentDir()
|
|
||||||
src = Glob('*.c') + Glob('*.cpp')
|
|
||||||
inc = [cwd]
|
|
||||||
|
|
||||||
group = DefineGroup('RTduino-pinout', src, depend = ['PKG_USING_RTDUINO'], CPPPATH = inc)
|
|
||||||
|
|
||||||
Return('group')
|
|
|
@ -1,69 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2006-2024, RT-Thread Development Team
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*
|
|
||||||
* Change Logs:
|
|
||||||
* Date Author Notes
|
|
||||||
* 2024-04-10 Li ZhenHong first version
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <Arduino.h>
|
|
||||||
#include "pins_arduino.h"
|
|
||||||
#include <drv_gpio.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* {Arduino Pin, RT-Thread Pin [, Device Name, Channel]}
|
|
||||||
* [] means optional
|
|
||||||
* Digital pins must NOT give the device name and channel.
|
|
||||||
* Analog pins MUST give the device name and channel(ADC, PWM or DAC).
|
|
||||||
* Arduino Pin must keep in sequence.
|
|
||||||
*/
|
|
||||||
const pin_map_t pin_map_table[]=
|
|
||||||
{
|
|
||||||
{D0, GET_PIN(A, 10), "uart1"}, /* Serial-RX */
|
|
||||||
{D1, GET_PIN(A, 9), "uart1"}, /* Serial-TX */
|
|
||||||
{D2, GET_PIN(A, 8)},
|
|
||||||
{D3, GET_PIN(B, 10), "pwm2", 3}, /* PWM */
|
|
||||||
{D4, GET_PIN(A, 1)},
|
|
||||||
{D5, GET_PIN(B, 14)},
|
|
||||||
{D6, GET_PIN(B, 11), "pwm2", 4}, /* PWM */
|
|
||||||
{D7, GET_PIN(B, 15)},
|
|
||||||
{D8, GET_PIN(F, 15)},
|
|
||||||
{D9, GET_PIN(E, 11), "pwm1", 2}, /* PWM */
|
|
||||||
{D10, GET_PIN(E, 13), "pwm1", 3}, /* PWM */
|
|
||||||
{D11, GET_PIN(D, 12), "pwm4", 1}, /* PWM */
|
|
||||||
{D12, GET_PIN(D, 10)},
|
|
||||||
{D13, GET_PIN(D, 8)},
|
|
||||||
{D14, GET_PIN(E, 14)},
|
|
||||||
{D15, GET_PIN(E, 12)},
|
|
||||||
{D16, GET_PIN(E, 15)},
|
|
||||||
{D17, GET_PIN(D, 9)},
|
|
||||||
{D18, GET_PIN(G, 2)},
|
|
||||||
{D19, GET_PIN(B, 2)},
|
|
||||||
{D20, GET_PIN(G, 0)},
|
|
||||||
{D21, GET_PIN(A, 0)},
|
|
||||||
{D22, GET_PIN(G, 5), "sspi1"}, /* SOFT-SPI-SCK */
|
|
||||||
{D23, GET_PIN(G, 3), "sspi1"}, /* SOFT-SPI-MISO */
|
|
||||||
{D24, GET_PIN(G, 1), "sspi1"}, /* SOFT-SPI-MOSI */
|
|
||||||
{D25, GET_PIN(G, 7), "i2c4"}, /* I2C-SCL (Wire) */
|
|
||||||
{D26, GET_PIN(D, 7), "i2c4"}, /* I2C-SDA (Wire) */
|
|
||||||
{D27, GET_PIN(B, 6), "i2c5"}, /* I2C-SCL (Wire) */
|
|
||||||
{D28, GET_PIN(B, 7), "i2c5"}, /* I2C-SDA (Wire) */
|
|
||||||
{D29, GET_PIN(G, 6)}, /* SPI-SS */
|
|
||||||
{D30, GET_PIN(G, 4)},
|
|
||||||
{D31, GET_PIN(A, 2), "uart2"}, /* Serial2-TX */
|
|
||||||
{D32, GET_PIN(A, 3), "uart2"}, /* Serial2-RX */
|
|
||||||
{D33, GET_PIN(F, 12)}, /* On-Board R_LED */
|
|
||||||
{D34, GET_PIN(F, 11)}, /* On-Board B_LED */
|
|
||||||
{D35, GET_PIN(B, 0)}, /* On_Board Buzzer */
|
|
||||||
{D36, GET_PIN(C, 5)}, /* On-Board KEY_UP */
|
|
||||||
{D37, GET_PIN(C, 1)}, /* On-Board KEY_DOWM */
|
|
||||||
{D38, GET_PIN(C, 0)}, /* On-Board KEY_LEFT */
|
|
||||||
{D39, GET_PIN(C, 4)}, /* On-Board KEY_RIGHT */
|
|
||||||
{A0, GET_PIN(F, 6), "adc3", 4}, /* ADC */
|
|
||||||
{A1, GET_PIN(F, 7), "adc3", 5}, /* ADC */
|
|
||||||
{A2, GET_PIN(F, 4), "adc3", 14}, /* ADC */
|
|
||||||
{A3, GET_PIN(F, 5), "adc3", 15}, /* ADC */
|
|
||||||
{DAC0, GET_PIN(A, 4), "dac1", 1}, /* DAC */
|
|
||||||
};
|
|
|
@ -1,77 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2006-2024, RT-Thread Development Team
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*
|
|
||||||
* Change Logs:
|
|
||||||
* Date Author Notes
|
|
||||||
* 2024-04-07 Li ZhenHong first version
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef Pins_Arduino_h
|
|
||||||
#define Pins_Arduino_h
|
|
||||||
|
|
||||||
/* pins alias. Must keep in sequence */
|
|
||||||
#define D0 (0)
|
|
||||||
#define D1 (1)
|
|
||||||
#define D2 (2)
|
|
||||||
#define D3 (3)
|
|
||||||
#define D4 (4)
|
|
||||||
#define D5 (5)
|
|
||||||
#define D6 (6)
|
|
||||||
#define D7 (7)
|
|
||||||
#define D8 (8)
|
|
||||||
#define D9 (9)
|
|
||||||
#define D10 (10)
|
|
||||||
#define D11 (11)
|
|
||||||
#define D12 (12)
|
|
||||||
#define D13 (13)
|
|
||||||
#define D14 (14)
|
|
||||||
#define D15 (15)
|
|
||||||
#define D16 (16)
|
|
||||||
#define D17 (17)
|
|
||||||
#define D18 (18)
|
|
||||||
#define D19 (19)
|
|
||||||
#define D20 (20)
|
|
||||||
#define D21 (21)
|
|
||||||
#define D22 (22)
|
|
||||||
#define D23 (23)
|
|
||||||
#define D24 (24)
|
|
||||||
#define D25 (25)
|
|
||||||
#define D26 (26)
|
|
||||||
#define D27 (27)
|
|
||||||
#define D28 (28)
|
|
||||||
#define D29 (29)
|
|
||||||
#define D30 (30)
|
|
||||||
#define D31 (31)
|
|
||||||
#define D32 (32)
|
|
||||||
#define D33 (33)
|
|
||||||
#define D34 (34)
|
|
||||||
#define D35 (35)
|
|
||||||
#define D36 (36)
|
|
||||||
#define D37 (37)
|
|
||||||
#define D38 (38)
|
|
||||||
#define D39 (39)
|
|
||||||
#define A0 (40)
|
|
||||||
#define A1 (41)
|
|
||||||
#define A2 (42)
|
|
||||||
#define A3 (43)
|
|
||||||
#define DAC0 (44)
|
|
||||||
|
|
||||||
#define RTDUINO_PIN_MAX_LIMIT DAC0 /* pin number max limit check */
|
|
||||||
|
|
||||||
#define F_CPU 168000000L /* CPU:168MHz */
|
|
||||||
|
|
||||||
#define LED_BUILTIN D33 /* Default Built-in LED */
|
|
||||||
|
|
||||||
/* i2c4 : PD.7-SDA PG.7-SCL */
|
|
||||||
#define RTDUINO_DEFAULT_IIC_BUS_NAME "i2c4"
|
|
||||||
|
|
||||||
#define SS D32 /* Chip select pin of default spi */
|
|
||||||
/* sspi1 : PG.5-SCK PG.3-MISO PG.1-MOSI */
|
|
||||||
#define RTDUINO_DEFAULT_SPI_BUS_NAME "sspi1"
|
|
||||||
|
|
||||||
/* Serial2(uart2) : PA.2-TX PA.3-RX */
|
|
||||||
#define RTDUINO_SERIAL2_DEVICE_NAME "uart2"
|
|
||||||
|
|
||||||
#endif /* Pins_Arduino_h */
|
|
|
@ -1,85 +0,0 @@
|
||||||
#include <rtthread.h>
|
|
||||||
#include <rtdevice.h>
|
|
||||||
#include <board.h>
|
|
||||||
#include <icm20608.h>
|
|
||||||
|
|
||||||
#define LOG_TAG "icm.app"
|
|
||||||
#define LOG_LVL LOG_LVL_DBG
|
|
||||||
#include <ulog.h>
|
|
||||||
|
|
||||||
static void icm_thread_entry(void *parameter)
|
|
||||||
{
|
|
||||||
icm20608_device_t dev = RT_NULL;
|
|
||||||
const char *i2c_bus_name = "i2c2";
|
|
||||||
int count = 0;
|
|
||||||
rt_err_t result;
|
|
||||||
|
|
||||||
/* 初始化 icm20608 传感器 */
|
|
||||||
dev = icm20608_init(i2c_bus_name);
|
|
||||||
if (dev == RT_NULL)
|
|
||||||
{
|
|
||||||
LOG_E("The sensor initializes failure");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LOG_D("The sensor initializes success");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 对 icm20608 进行零值校准:采样 10 次,求取平均值作为零值 */
|
|
||||||
result = icm20608_calib_level(dev, 10);
|
|
||||||
if (result == RT_EOK)
|
|
||||||
{
|
|
||||||
LOG_D("The sensor calibrates success");
|
|
||||||
LOG_D("accel_offset: X%6d Y%6d Z%6d", dev->accel_offset.x, dev->accel_offset.y, dev->accel_offset.z);
|
|
||||||
LOG_D("gyro_offset : X%6d Y%6d Z%6d", dev->gyro_offset.x, dev->gyro_offset.y, dev->gyro_offset.z);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LOG_E("The sensor calibrates failure");
|
|
||||||
icm20608_deinit(dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
while (count++ < 100)
|
|
||||||
{
|
|
||||||
rt_int16_t accel_x, accel_y, accel_z;
|
|
||||||
rt_int16_t gyros_x, gyros_y, gyros_z;
|
|
||||||
|
|
||||||
/* 读取三轴加速度 */
|
|
||||||
result = icm20608_get_accel(dev, &accel_x, &accel_y, &accel_z);
|
|
||||||
if (result == RT_EOK)
|
|
||||||
{
|
|
||||||
LOG_D("current accelerometer: accel_x%6d, accel_y%6d, accel_z%6d", accel_x, accel_y, accel_z);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LOG_E("The sensor does not work");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 读取三轴陀螺仪 */
|
|
||||||
result = icm20608_get_gyro(dev, &gyros_x, &gyros_y, &gyros_z);
|
|
||||||
if (result == RT_EOK)
|
|
||||||
{
|
|
||||||
LOG_D("current gyroscope : gyros_x%6d, gyros_y%6d, gyros_z%6d", gyros_x, gyros_y, gyros_z);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LOG_E("The sensor does not work");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
rt_thread_mdelay(1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int icm_app(void)
|
|
||||||
{
|
|
||||||
rt_thread_t res = rt_thread_create("icm", icm_thread_entry, RT_NULL, 1024, 20, 50);
|
|
||||||
if(res == RT_NULL)
|
|
||||||
{
|
|
||||||
return -RT_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
rt_thread_startup(res);
|
|
||||||
|
|
||||||
return RT_EOK;
|
|
||||||
}
|
|
||||||
MSH_CMD_EXPORT(icm_app, icm_app);
|
|
|
@ -1,24 +0,0 @@
|
||||||
#include <rtthread.h>
|
|
||||||
#include<board.h>
|
|
||||||
#ifndef RT_USING_NANO
|
|
||||||
#include <rtdevice.h>
|
|
||||||
#endif // !RT_USING_NANO
|
|
||||||
|
|
||||||
#define GPIO_LED_B GET_PIN(F,11)
|
|
||||||
#define GPIO_LED_B GET_PIN(F,11)
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// #define WIFI_CS GET_PIN(F,10)
|
|
||||||
// void WIFICS_PULL_DOWN(void)
|
|
||||||
// {
|
|
||||||
// rt_pin_mode(WIFI_CS, PIN_MODE_OUTPUT);
|
|
||||||
// rt_pin_write(WIFI_CS, PIN_LOW);
|
|
||||||
// }
|
|
||||||
// INIT_BOARD_EXPORT(WIFI_CS_PULL_DOWN);
|
|
||||||
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
//未完成
|
|
||||||
#include <rtthread.h>
|
|
||||||
#include <rtdevice.h>
|
|
||||||
|
|
||||||
#include <drv_spi.h>
|
|
||||||
#include <drv_gpio.h>
|
|
||||||
|
|
||||||
|
|
||||||
static int spi_attach(void)
|
|
||||||
{
|
|
||||||
return rt_hw_spi_device_attach("spi2", "spi20", GET_PIN(B,12));
|
|
||||||
}
|
|
||||||
// INIT_DEVICE_EXPORT(spi_attach);
|
|
||||||
|
|
||||||
static int spi_transfer_one_data(void)
|
|
||||||
{
|
|
||||||
rt_err_t ret =RT_EOK;
|
|
||||||
struct rt_spi_device *spi_d20 = (struct rt_spi_device *)rt_device_find("spi20");
|
|
||||||
|
|
||||||
struct rt_spi_configuration cfg;
|
|
||||||
cfg.data_width = 8;
|
|
||||||
cfg.mode = RT_SPI_MASTER | RT_SPI_MODE_0 | RT_SPI_MSB;
|
|
||||||
cfg.max_hz =1 *1000 *1000;
|
|
||||||
rt_spi_configure(spi20,&cfg);
|
|
||||||
|
|
||||||
rt_uint8_t sendBuff = 0xDA;
|
|
||||||
rt_uint8_t recvBuff = 0xF1;
|
|
||||||
ret =rt_spi_transfer(spi20,&sendBuff,&recvBuff,1);
|
|
||||||
rt_kprintf("sret = %d\n",ret);
|
|
||||||
}
|
|
||||||
MSH_CMD_EXPORT(spi_transfer_one_data, spi transfer one data);
|
|
|
@ -1,19 +0,0 @@
|
||||||
#include <rtthread.h>
|
|
||||||
#include <rtdevice.h>
|
|
||||||
|
|
||||||
#define LOG_TAG "drv.test"
|
|
||||||
#define LOG_LVL LOG_LVL_DBG
|
|
||||||
#include <ulog.h>
|
|
||||||
|
|
||||||
static int dev_test_app(void)
|
|
||||||
[
|
|
||||||
rt_device_t test_dev = rt_device_find("test_dev");
|
|
||||||
if(test_dev == RT_NULL)
|
|
||||||
{
|
|
||||||
LOG_E("Cannot find test_dev");
|
|
||||||
return -RT_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
rt_device_open(test_dev, RT_DEVICE_OFLAG_RDWR);
|
|
||||||
rt_device_close(test_dev);
|
|
||||||
]
|
|
Loading…
Reference in New Issue