Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
rt-thread
提交
0f6a7539
R
rt-thread
项目概览
BaiXuePrincess
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0f6a7539
编写于
9月 10, 2021
作者:
L
liuhy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update es32f0654 , es32f369x drivers.
上级
ca77bbfb
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
186 addition
and
72 deletion
+186
-72
bsp/essemi/es32f0654/drivers/board.c
bsp/essemi/es32f0654/drivers/board.c
+2
-0
bsp/essemi/es32f0654/drivers/bsp_driver_example/i2c_sample.c
bsp/essemi/es32f0654/drivers/bsp_driver_example/i2c_sample.c
+0
-4
bsp/essemi/es32f0654/drivers/bsp_driver_example/led_blink_sample.c
...i/es32f0654/drivers/bsp_driver_example/led_blink_sample.c
+2
-1
bsp/essemi/es32f0654/drivers/bsp_driver_example/pin_beep_sample.c
...mi/es32f0654/drivers/bsp_driver_example/pin_beep_sample.c
+4
-3
bsp/essemi/es32f0654/drivers/bsp_driver_example/pm_sample.c
bsp/essemi/es32f0654/drivers/bsp_driver_example/pm_sample.c
+2
-1
bsp/essemi/es32f0654/drivers/bsp_driver_example/pwm_led_sample.c
...emi/es32f0654/drivers/bsp_driver_example/pwm_led_sample.c
+3
-3
bsp/essemi/es32f0654/drivers/bsp_driver_example/uart_sample.c
...essemi/es32f0654/drivers/bsp_driver_example/uart_sample.c
+53
-4
bsp/essemi/es32f0654/drivers/drv_can.c
bsp/essemi/es32f0654/drivers/drv_can.c
+4
-4
bsp/essemi/es32f0654/drivers/drv_gpio.c
bsp/essemi/es32f0654/drivers/drv_gpio.c
+9
-3
bsp/essemi/es32f0654/drivers/drv_gpio.h
bsp/essemi/es32f0654/drivers/drv_gpio.h
+2
-0
bsp/essemi/es32f0654/drivers/drv_i2c.c
bsp/essemi/es32f0654/drivers/drv_i2c.c
+3
-3
bsp/essemi/es32f369x/drivers/board.c
bsp/essemi/es32f369x/drivers/board.c
+2
-0
bsp/essemi/es32f369x/drivers/bsp_driver_example/i2c_sample.c
bsp/essemi/es32f369x/drivers/bsp_driver_example/i2c_sample.c
+0
-4
bsp/essemi/es32f369x/drivers/bsp_driver_example/led_blink_sample.c
...i/es32f369x/drivers/bsp_driver_example/led_blink_sample.c
+3
-2
bsp/essemi/es32f369x/drivers/bsp_driver_example/pin_beep_sample.c
...mi/es32f369x/drivers/bsp_driver_example/pin_beep_sample.c
+5
-4
bsp/essemi/es32f369x/drivers/bsp_driver_example/pm_sample.c
bsp/essemi/es32f369x/drivers/bsp_driver_example/pm_sample.c
+5
-6
bsp/essemi/es32f369x/drivers/bsp_driver_example/pwm_led_sample.c
...emi/es32f369x/drivers/bsp_driver_example/pwm_led_sample.c
+4
-4
bsp/essemi/es32f369x/drivers/bsp_driver_example/uart_sample.c
...essemi/es32f369x/drivers/bsp_driver_example/uart_sample.c
+53
-4
bsp/essemi/es32f369x/drivers/drv_adc.c
bsp/essemi/es32f369x/drivers/drv_adc.c
+2
-2
bsp/essemi/es32f369x/drivers/drv_can.c
bsp/essemi/es32f369x/drivers/drv_can.c
+4
-4
bsp/essemi/es32f369x/drivers/drv_gpio.c
bsp/essemi/es32f369x/drivers/drv_gpio.c
+13
-7
bsp/essemi/es32f369x/drivers/drv_gpio.h
bsp/essemi/es32f369x/drivers/drv_gpio.h
+2
-0
bsp/essemi/es32f369x/drivers/drv_i2c.c
bsp/essemi/es32f369x/drivers/drv_i2c.c
+5
-5
bsp/essemi/es32f369x/drivers/drv_spi.c
bsp/essemi/es32f369x/drivers/drv_spi.c
+2
-2
bsp/essemi/es32f369x/drivers/drv_uart.c
bsp/essemi/es32f369x/drivers/drv_uart.c
+2
-2
未找到文件。
bsp/essemi/es32f0654/drivers/board.c
浏览文件 @
0f6a7539
...
...
@@ -127,6 +127,8 @@ void SysTick_Configuration(void)
{
/* ticks = sysclk / RT_TICK_PER_SECOND */
SysTick_Config
(
ald_cmu_get_sys_clock
()
/
RT_TICK_PER_SECOND
);
__systick_interval
=
1
;
}
/**
...
...
bsp/essemi/es32f0654/drivers/bsp_driver_example/i2c_sample.c
浏览文件 @
0f6a7539
...
...
@@ -64,8 +64,6 @@ static void i2c_io_sample(int argc, char *argv[])
temp_msg
.
flags
=
RT_I2C_RD
;
/* I2C读 */
s_stat
=
rt_i2c_transfer
(
i2c_bus
,
&
temp_msg
,
num_msg
);
/* 传输消息 */
rt_thread_mdelay
(
400
);
if
(
s_stat
==
num_msg
)
{
rt_kprintf
(
"receive successful.
\n
receive messege : %s
\n
:"
,
buffer
);
...
...
@@ -87,8 +85,6 @@ static void i2c_io_sample(int argc, char *argv[])
temp_msg
.
flags
=
RT_I2C_WR
;
/* I2C写 */
s_stat
=
rt_i2c_transfer
(
i2c_bus
,
&
temp_msg
,
num_msg
);
/* 传输一条 */
rt_thread_mdelay
(
400
);
if
(
s_stat
==
num_msg
)
{
rt_kprintf
(
" send successful
\n
messege : %s
\n
:"
,
buffer
);
...
...
bsp/essemi/es32f0654/drivers/bsp_driver_example/led_blink_sample.c
浏览文件 @
0f6a7539
...
...
@@ -19,9 +19,10 @@
#include <rtthread.h>
#include <rtdevice.h>
#include <stdlib.h>
#include "drv_gpio.h"
/* PIN脚编号,查看驱动文件drv_gpio.c确定 */
#define LED_PIN_NUM
40
/*PB9*/
#define LED_PIN_NUM
GET_PIN(B,9)
/*PB9*/
static
int
pin_num
;
static
void
led_entry
(
void
*
parameter
)
...
...
bsp/essemi/es32f0654/drivers/bsp_driver_example/pin_beep_sample.c
浏览文件 @
0f6a7539
...
...
@@ -16,16 +16,17 @@
#include <rtthread.h>
#include <rtdevice.h>
#include "drv_gpio.h"
/* 引脚编号,通过查看驱动文件drv_gpio.c确定 */
#ifndef BEEP_PIN_NUM
#define BEEP_PIN_NUM
40
/* PB9 */
#define BEEP_PIN_NUM
GET_PIN(B,9)
/* PB9 */
#endif
#ifndef KEY0_PIN_NUM
#define KEY0_PIN_NUM
18
/* PF0 */
#define KEY0_PIN_NUM
GET_PIN(F,0)
/* PF0 */
#endif
#ifndef KEY1_PIN_NUM
#define KEY1_PIN_NUM
19
/* PF1 */
#define KEY1_PIN_NUM
GET_PIN(F,1)
/* PF1 */
#endif
void
beep_on
(
void
*
args
)
...
...
bsp/essemi/es32f0654/drivers/bsp_driver_example/pm_sample.c
浏览文件 @
0f6a7539
...
...
@@ -30,11 +30,12 @@
#include <rtthread.h>
#include <rtdevice.h>
#include "drv_gpio.h"
#ifdef RT_USING_PM
#define PM_NAME "pm"
/* 设备名称 */
#define WAKE_UP_PIN
19
/* 唤醒源 */
#define WAKE_UP_PIN
GET_PIN(F,0)
/* 唤醒源 */
#define SLEEP_TIMES 12
/* 进入睡眠次数,轮流进入不同的睡眠模式,包括无睡眠模式 */
...
...
bsp/essemi/es32f0654/drivers/bsp_driver_example/pwm_led_sample.c
浏览文件 @
0f6a7539
...
...
@@ -16,13 +16,13 @@
#include <rtthread.h>
#include <rtdevice.h>
#include "drv_gpio.h"
#ifdef RT_USING_PWM
#define LED_PIN_NUM
16
/* LED PIN脚编号,查看驱动文件drv_gpio.c确定 */
#define LED_PIN_NUM
GET_PIN(A,2)
/* LED PIN脚编号,查看驱动文件drv_gpio.c确定 */
#define PWM_DEV_NAME "pwm1"
/* PWM设备名称 */
#define PWM_DEV_CHANNEL 1
/* P
A8 P
WM通道 */
#define PWM_DEV_CHANNEL 1
/* PWM通道 */
struct
rt_device_pwm
*
pwm_dev
;
/* PWM设备句柄 */
...
...
bsp/essemi/es32f0654/drivers/bsp_driver_example/uart_sample.c
浏览文件 @
0f6a7539
...
...
@@ -12,16 +12,28 @@
* 例程导出了 uart_sample 命令到控制终端
* 命令调用格式:uart_sample uart2
* 命令解释:命令第二个参数是要使用的串口设备名称,为空则使用默认的串口设备
* 程序功能:通过串口输出字符串"hello RT-Thread!",然后
错位输出输入的字符
* 程序功能:通过串口输出字符串"hello RT-Thread!",然后
根据例子类型,处理输入数据,然后输出
*/
#include <rtthread.h>
#define SAMPLE_UART_NAME "uart2"
/* 串口设备名称 */
/* UART_SAMPLE_TYPE = 1,错位输出
= 2 接收到固定格式之后输出
*/
#define UART_SAMPLE_TYPE 1
#if (UART_SAMPLE_TYPE == 2)
#define SAMPLE_UART_RXBUF_SIZE 256
/* 接收缓存大小 */
#define SAMPLE_UART_END_SRTING "\r\n"
/* 结尾固定格式 */
#endif
#define SAMPLE_UART_NAME "uart0"
/* 串口设备名称 */
/* 用于接收消息的信号量 */
static
struct
rt_semaphore
rx_sem
;
static
rt_device_t
serial
;
static
rt_device_t
serial
;
/* 接收数据回调函数 */
static
rt_err_t
uart_input
(
rt_device_t
dev
,
rt_size_t
size
)
...
...
@@ -33,7 +45,8 @@ static rt_err_t uart_input(rt_device_t dev, rt_size_t size)
}
static
void
serial_thread_entry
(
void
*
parameter
)
{
{
#if (UART_SAMPLE_TYPE == 1)
char
ch
;
while
(
1
)
...
...
@@ -48,6 +61,42 @@ static void serial_thread_entry(void *parameter)
ch
=
ch
+
1
;
rt_device_write
(
serial
,
0
,
&
ch
,
1
);
}
#endif
#if (UART_SAMPLE_TYPE == 2)
char
rx_buf
[
SAMPLE_UART_RXBUF_SIZE
],
*
end
=
SAMPLE_UART_END_SRTING
;
/*rx_buf[]:接收缓存,可修改大小 end[]:固定的结束格式(可修改,不可包含'\0')*/
uint32_t
rx_index
=
0
;
/*接收数据的索引 */
uint32_t
end_len
=
rt_strlen
(
end
);
/*固定的结束格式的长度*/
while
(
1
)
{
/* 从串口读取一个字节的数据,没有读取到则等待接收信号量 */
while
(
rt_device_read
(
serial
,
-
1
,
(
rx_buf
+
rx_index
),
1
)
!=
1
)
{
/* 阻塞等待接收信号量,等到信号量后再次读取数据 */
rt_sem_take
(
&
rx_sem
,
RT_WAITING_FOREVER
);
}
rx_index
++
;
if
(
rx_index
>=
SAMPLE_UART_RXBUF_SIZE
)
{
rt_kprintf
(
"rx_buf over!
\r\n
"
);
/*范围越界*/
}
/*判断是否固定的结尾格式*/
if
((
rx_index
>=
end_len
)
&&
\
((
rt_strncmp
(
end
,(
rx_buf
+
rx_index
-
end_len
),
end_len
))
==
0
))
{
rt_device_write
(
serial
,
0
,
rx_buf
,
rx_index
);
rx_index
=
0
;
}
}
#endif
}
static
int
uart_sample
(
int
argc
,
char
*
argv
[])
...
...
bsp/essemi/es32f0654/drivers/drv_can.c
浏览文件 @
0f6a7539
...
...
@@ -418,14 +418,14 @@ static int _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t
}
/* clear TIR */
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
&=
CAN_TXID0_TXMREQ_MSK
;
/* Set up the Id */
/* Set up the Id */
if
(
RT_CAN_STDID
==
pmsg
->
ide
)
{
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
|=
(
txheader
.
std
<<
CAN_TXID0_STDID_POSS
)
|
txheader
.
rtr
;
{
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
|=
(
txheader
.
std
<<
CAN_TXID0_STDID_POSS
)
|
(
txheader
.
rtr
<<
CAN_TXID0_RTR_POS
)
;
}
else
{
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
|=
(
txheader
.
ext
<<
CAN_TXID0_EXID_POSS
)
|
txheader
.
type
|
txheader
.
rtr
;
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
|=
(
txheader
.
ext
<<
CAN_TXID0_EXID_POSS
)
|
(
txheader
.
type
<<
CAN_TXID0_IDE_POS
)
|
(
txheader
.
rtr
<<
CAN_TXID0_RTR_POS
)
;
}
/* Set up the DLC */
h_can
->
perh
->
TxMailBox
[
box_num
].
TXFCON
=
pmsg
->
len
&
0x0FU
;
...
...
bsp/essemi/es32f0654/drivers/drv_gpio.c
浏览文件 @
0f6a7539
...
...
@@ -314,12 +314,18 @@ void es32f0_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
rt_inline
const
struct
pin_irq_map
*
get_pin_irq_map
(
rt_uint16_t
gpio_pin
)
{
rt_int32_t
mapindex
=
gpio_pin
&
0x00FF
;
if
(
mapindex
<
0
||
mapindex
>=
ITEM_NUM
(
pin_irq_map
))
uint8_t
map_index
=
0U
;
while
(
gpio_pin
>>
(
++
map_index
))
{
}
map_index
--
;
if
(
map_index
>=
ITEM_NUM
(
pin_irq_map
))
{
return
RT_NULL
;
}
return
&
pin_irq_map
[
mapindex
];
return
&
pin_irq_map
[
map
_
index
];
};
rt_err_t
es32f0_pin_attach_irq
(
struct
rt_device
*
device
,
rt_int32_t
pin
,
...
...
bsp/essemi/es32f0654/drivers/drv_gpio.h
浏览文件 @
0f6a7539
...
...
@@ -26,6 +26,8 @@
#include "es_conf_info_gpio.h"
#define GET_PIN(port,pin) (ES_PIN_GPIO_##port##_##pin)
int
rt_hw_pin_init
(
void
);
#endif
bsp/essemi/es32f0654/drivers/drv_i2c.c
浏览文件 @
0f6a7539
...
...
@@ -81,9 +81,9 @@ static void _i2c_init(void)
#ifdef BSP_USING_I2C1
#if defined(ES_I2C1_S
DA_GPIO_FUNC)&&defined(ES_I2C1_SDA_GPIO_PORT)&&defined(ES_I2C1_SDA
_GPIO_PIN)
gpio_instruct
.
func
=
ES_I2C1_S
DA
_GPIO_FUNC
;
ald_gpio_init
(
ES_I2C1_S
DA_GPIO_PORT
,
ES_I2C1_SDA
_GPIO_PIN
,
&
gpio_instruct
);
#if defined(ES_I2C1_S
CL_GPIO_FUNC)&&defined(ES_I2C1_SCL_GPIO_PORT)&&defined(ES_I2C1_SCL
_GPIO_PIN)
gpio_instruct
.
func
=
ES_I2C1_S
CL
_GPIO_FUNC
;
ald_gpio_init
(
ES_I2C1_S
CL_GPIO_PORT
,
ES_I2C1_SCL
_GPIO_PIN
,
&
gpio_instruct
);
#endif
#if defined(ES_I2C1_SDA_GPIO_FUNC)&&defined(ES_I2C1_SDA_GPIO_PORT)&&defined(ES_I2C1_SDA_GPIO_PIN)
...
...
bsp/essemi/es32f369x/drivers/board.c
浏览文件 @
0f6a7539
...
...
@@ -129,6 +129,8 @@ void SysTick_Configuration(void)
{
/* ticks = sysclk / RT_TICK_PER_SECOND */
SysTick_Config
(
ald_cmu_get_sys_clock
()
/
RT_TICK_PER_SECOND
);
__systick_interval
=
1
;
}
/**
...
...
bsp/essemi/es32f369x/drivers/bsp_driver_example/i2c_sample.c
浏览文件 @
0f6a7539
...
...
@@ -64,8 +64,6 @@ static void i2c_io_sample(int argc, char *argv[])
temp_msg
.
flags
=
RT_I2C_RD
;
/* I2C读 */
s_stat
=
rt_i2c_transfer
(
i2c_bus
,
&
temp_msg
,
num_msg
);
/* 传输消息 */
rt_thread_mdelay
(
400
);
if
(
s_stat
==
num_msg
)
{
rt_kprintf
(
"receive successful.
\n
receive messege : %s
\n
:"
,
buffer
);
...
...
@@ -87,8 +85,6 @@ static void i2c_io_sample(int argc, char *argv[])
temp_msg
.
flags
=
RT_I2C_WR
;
/* I2C写 */
s_stat
=
rt_i2c_transfer
(
i2c_bus
,
&
temp_msg
,
num_msg
);
/* 传输一条 */
rt_thread_mdelay
(
400
);
if
(
s_stat
==
num_msg
)
{
rt_kprintf
(
" send successful
\n
messege : %s
\n
:"
,
buffer
);
...
...
bsp/essemi/es32f369x/drivers/bsp_driver_example/led_blink_sample.c
浏览文件 @
0f6a7539
...
...
@@ -18,10 +18,11 @@
#include <rtthread.h>
#include <rtdevice.h>
#include <stdlib.h>
#include <stdlib.h>
#include "drv_gpio.h"
/* PIN脚编号,查看驱动文件drv_gpio.c确定 */
#define LED_PIN_NUM
19
/*PF1*/
#define LED_PIN_NUM
GET_PIN( F , 1 )
static
int
pin_num
;
static
void
led_entry
(
void
*
parameter
)
...
...
bsp/essemi/es32f369x/drivers/bsp_driver_example/pin_beep_sample.c
浏览文件 @
0f6a7539
...
...
@@ -15,17 +15,18 @@
*/
#include <rtthread.h>
#include <rtdevice.h>
#include <rtdevice.h>
#include "drv_gpio.h"
/* 引脚编号,通过查看驱动文件drv_gpio.c确定 */
#ifndef BEEP_PIN_NUM
#define BEEP_PIN_NUM
19
/* PF1 */
#define BEEP_PIN_NUM
GET_PIN( F , 1 )
#endif
#ifndef KEY0_PIN_NUM
#define KEY0_PIN_NUM
52
/* PC11 */
#define KEY0_PIN_NUM
GET_PIN( C , 11 )
#endif
#ifndef KEY1_PIN_NUM
#define KEY1_PIN_NUM
53
/* PC12 */
#define KEY1_PIN_NUM
GET_PIN( C , 12 )
#endif
void
beep_on
(
void
*
args
)
...
...
bsp/essemi/es32f369x/drivers/bsp_driver_example/pm_sample.c
浏览文件 @
0f6a7539
...
...
@@ -30,15 +30,14 @@
#include <rtthread.h>
#include <rtdevice.h>
#include "drv_pm.h"
#include "ald_gpio.h"
#include "drv_pm.h"
#include "drv_gpio.h"
#ifdef RT_USING_PM
#define PM_NAME "pm"
/* 设备名称 */
#define WAKE_UP_PIN
51
/* 唤醒源 */
#define SLEEP_TIMES
12
/* 进入睡眠次数,轮流进入不同的睡眠模式,包括无睡眠模式 */
#define PM_NAME "pm"
/* 设备名称 */
#define WAKE_UP_PIN
GET_PIN( C , 10 )
/* 唤醒源 */
#define SLEEP_TIMES
12
/* 进入睡眠次数,轮流进入不同的睡眠模式,包括无睡眠模式 */
/*部分芯片进入深度睡眠后,部分外设的部分寄存器可能会丢失*/
#define SAVE_REG UART0
...
...
bsp/essemi/es32f369x/drivers/bsp_driver_example/pwm_led_sample.c
浏览文件 @
0f6a7539
...
...
@@ -16,13 +16,13 @@
#include <rtthread.h>
#include <rtdevice.h>
#include "drv_gpio.h"
#ifdef RT_USING_PWM
#define LED_PIN_NUM
37
/* PF1
LED PIN脚编号,查看驱动文件drv_gpio.c确定 */
#define PWM_DEV_NAME "pwm1"
/* PWM设备名称 */
#define PWM_DEV_CHANNEL
1
/* PWM通道 */
#define LED_PIN_NUM
GET_PIN( C , 6 )
/*
LED PIN脚编号,查看驱动文件drv_gpio.c确定 */
#define PWM_DEV_NAME "pwm1"
/* PWM设备名称 */
#define PWM_DEV_CHANNEL
1
/* PWM通道 */
struct
rt_device_pwm
*
pwm_dev
;
/* PWM设备句柄 */
...
...
bsp/essemi/es32f369x/drivers/bsp_driver_example/uart_sample.c
浏览文件 @
0f6a7539
...
...
@@ -12,16 +12,28 @@
* 例程导出了 uart_sample 命令到控制终端
* 命令调用格式:uart_sample uart2
* 命令解释:命令第二个参数是要使用的串口设备名称,为空则使用默认的串口设备
* 程序功能:通过串口输出字符串"hello RT-Thread!",然后
错位输出输入的字符
* 程序功能:通过串口输出字符串"hello RT-Thread!",然后
根据例子类型,处理输入数据,然后输出
*/
#include <rtthread.h>
#define SAMPLE_UART_NAME "uart0"
/* 串口设备名称 */
/* UART_SAMPLE_TYPE = 1,错位输出
= 2 接收到固定格式之后输出
*/
#define UART_SAMPLE_TYPE 1
#if (UART_SAMPLE_TYPE == 2)
#define SAMPLE_UART_RXBUF_SIZE 256
/* 接收缓存大小 */
#define SAMPLE_UART_END_SRTING "\r\n"
/* 结尾固定格式 */
#endif
#define SAMPLE_UART_NAME "uart1"
/* 串口设备名称 */
/* 用于接收消息的信号量 */
static
struct
rt_semaphore
rx_sem
;
static
rt_device_t
serial
;
static
rt_device_t
serial
;
/* 接收数据回调函数 */
static
rt_err_t
uart_input
(
rt_device_t
dev
,
rt_size_t
size
)
...
...
@@ -33,7 +45,8 @@ static rt_err_t uart_input(rt_device_t dev, rt_size_t size)
}
static
void
serial_thread_entry
(
void
*
parameter
)
{
{
#if (UART_SAMPLE_TYPE == 1)
char
ch
;
while
(
1
)
...
...
@@ -48,6 +61,42 @@ static void serial_thread_entry(void *parameter)
ch
=
ch
+
1
;
rt_device_write
(
serial
,
0
,
&
ch
,
1
);
}
#endif
#if (UART_SAMPLE_TYPE == 2)
char
rx_buf
[
SAMPLE_UART_RXBUF_SIZE
],
*
end
=
SAMPLE_UART_END_SRTING
;
/*rx_buf[]:接收缓存,可修改大小 end[]:固定的结束格式(可修改,不可包含'\0')*/
uint32_t
rx_index
=
0
;
/*接收数据的索引 */
uint32_t
end_len
=
rt_strlen
(
end
);
/*固定的结束格式的长度*/
while
(
1
)
{
/* 从串口读取一个字节的数据,没有读取到则等待接收信号量 */
while
(
rt_device_read
(
serial
,
-
1
,
(
rx_buf
+
rx_index
),
1
)
!=
1
)
{
/* 阻塞等待接收信号量,等到信号量后再次读取数据 */
rt_sem_take
(
&
rx_sem
,
RT_WAITING_FOREVER
);
}
rx_index
++
;
if
(
rx_index
>=
SAMPLE_UART_RXBUF_SIZE
)
{
rt_kprintf
(
"rx_buf over!
\r\n
"
);
/*范围越界*/
}
/*判断是否固定的结尾格式*/
if
((
rx_index
>=
end_len
)
&&
\
((
rt_strncmp
(
end
,(
rx_buf
+
rx_index
-
end_len
),
end_len
))
==
0
))
{
rt_device_write
(
serial
,
0
,
rx_buf
,
rx_index
);
rx_index
=
0
;
}
}
#endif
}
static
int
uart_sample
(
int
argc
,
char
*
argv
[])
...
...
bsp/essemi/es32f369x/drivers/drv_adc.c
浏览文件 @
0f6a7539
...
...
@@ -68,8 +68,8 @@ static adc_channel_t es32f3_adc_get_channel(rt_uint32_t channel)
gpio_initstruct
.
mode
=
GPIO_MODE_INPUT
;
gpio_initstruct
.
pupd
=
GPIO_FLOATING
;
gpio_initstruct
.
odos
=
GPIO_OPEN_DRAIN
;
gpio_initstruct
.
podrv
=
GPIO_OUT_DRIVE_
1
;
gpio_initstruct
.
nodrv
=
GPIO_OUT_DRIVE_
1
;
gpio_initstruct
.
podrv
=
GPIO_OUT_DRIVE_
6
;
gpio_initstruct
.
nodrv
=
GPIO_OUT_DRIVE_
6
;
gpio_initstruct
.
flt
=
GPIO_FILTER_DISABLE
;
gpio_initstruct
.
type
=
GPIO_TYPE_CMOS
;
gpio_initstruct
.
func
=
GPIO_FUNC_0
;
...
...
bsp/essemi/es32f369x/drivers/drv_can.c
浏览文件 @
0f6a7539
...
...
@@ -413,14 +413,14 @@ static int _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t
/* clear TIR */
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
&=
CAN_TXID0_TXMREQ_MSK
;
/* Set up the Id */
/* Set up the Id */
if
(
RT_CAN_STDID
==
pmsg
->
ide
)
{
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
|=
(
txheader
.
std
<<
CAN_TXID0_STDID_POSS
)
|
txheader
.
rtr
;
{
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
|=
(
txheader
.
std
<<
CAN_TXID0_STDID_POSS
)
|
(
txheader
.
rtr
<<
CAN_TXID0_RTR_POS
)
;
}
else
{
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
|=
(
txheader
.
ext
<<
CAN_TXID0_EXID_POSS
)
|
txheader
.
type
|
txheader
.
rtr
;
h_can
->
perh
->
TxMailBox
[
box_num
].
TXID
|=
(
txheader
.
ext
<<
CAN_TXID0_EXID_POSS
)
|
(
txheader
.
type
<<
CAN_TXID0_IDE_POS
)
|
(
txheader
.
rtr
<<
CAN_TXID0_RTR_POS
)
;
}
/* Set up the DLC */
h_can
->
perh
->
TxMailBox
[
box_num
].
TXFCON
=
pmsg
->
len
&
0x0FU
;
...
...
bsp/essemi/es32f369x/drivers/drv_gpio.c
浏览文件 @
0f6a7539
...
...
@@ -274,8 +274,8 @@ void es32f3_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
/* Configure GPIO_InitStructure */
gpio_initstruct
.
mode
=
GPIO_MODE_OUTPUT
;
gpio_initstruct
.
func
=
GPIO_FUNC_1
;
gpio_initstruct
.
podrv
=
GPIO_OUT_DRIVE_
1
;
gpio_initstruct
.
nodrv
=
GPIO_OUT_DRIVE_
0_1
;
gpio_initstruct
.
podrv
=
GPIO_OUT_DRIVE_
6
;
gpio_initstruct
.
nodrv
=
GPIO_OUT_DRIVE_
6
;
gpio_initstruct
.
type
=
GPIO_TYPE_CMOS
;
gpio_initstruct
.
odos
=
GPIO_PUSH_PULL
;
gpio_initstruct
.
flt
=
GPIO_FILTER_DISABLE
;
...
...
@@ -316,12 +316,18 @@ void es32f3_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
rt_inline
const
struct
pin_irq_map
*
get_pin_irq_map
(
rt_uint16_t
gpio_pin
)
{
rt_int32_t
mapindex
=
gpio_pin
&
0x00FF
;
if
(
mapindex
<
0
||
mapindex
>=
ITEM_NUM
(
pin_irq_map
))
uint8_t
map_index
=
0U
;
while
(
gpio_pin
>>
(
++
map_index
))
{
}
map_index
--
;
if
(
map_index
>=
ITEM_NUM
(
pin_irq_map
))
{
return
RT_NULL
;
}
return
&
pin_irq_map
[
mapindex
];
return
&
pin_irq_map
[
map
_
index
];
};
rt_err_t
es32f3_pin_attach_irq
(
struct
rt_device
*
device
,
rt_int32_t
pin
,
...
...
@@ -442,8 +448,8 @@ rt_err_t es32f3_pin_irq_enable(struct rt_device *device, rt_base_t pin,
/* Configure GPIO_InitStructure */
gpio_initstruct
.
mode
=
GPIO_MODE_INPUT
;
gpio_initstruct
.
odos
=
GPIO_PUSH_PULL
;
gpio_initstruct
.
podrv
=
GPIO_OUT_DRIVE_
1
;
gpio_initstruct
.
nodrv
=
GPIO_OUT_DRIVE_
1
;
gpio_initstruct
.
podrv
=
GPIO_OUT_DRIVE_
6
;
gpio_initstruct
.
nodrv
=
GPIO_OUT_DRIVE_
6
;
gpio_initstruct
.
func
=
GPIO_FUNC_1
;
gpio_initstruct
.
flt
=
GPIO_FILTER_DISABLE
;
switch
(
pin_irq_hdr_tab
[
irqindex
].
mode
)
...
...
bsp/essemi/es32f369x/drivers/drv_gpio.h
浏览文件 @
0f6a7539
...
...
@@ -25,6 +25,8 @@
#define DRV_GPIO_H__
#include "es_conf_info_gpio.h"
#define GET_PIN(port,pin) (ES_PIN_GPIO_##port##_##pin)
int
rt_hw_pin_init
(
void
);
...
...
bsp/essemi/es32f369x/drivers/drv_i2c.c
浏览文件 @
0f6a7539
...
...
@@ -49,8 +49,8 @@ static void _i2c_init(void)
gpio_instruct
.
mode
=
GPIO_MODE_OUTPUT
;
gpio_instruct
.
odos
=
GPIO_OPEN_DRAIN
;
gpio_instruct
.
pupd
=
GPIO_PUSH_UP
;
gpio_instruct
.
podrv
=
GPIO_OUT_DRIVE_
1
;
gpio_instruct
.
nodrv
=
GPIO_OUT_DRIVE_
0_1
;
gpio_instruct
.
podrv
=
GPIO_OUT_DRIVE_
6
;
gpio_instruct
.
nodrv
=
GPIO_OUT_DRIVE_
6
;
gpio_instruct
.
flt
=
GPIO_FILTER_DISABLE
;
gpio_instruct
.
type
=
GPIO_TYPE_CMOS
;
...
...
@@ -83,9 +83,9 @@ static void _i2c_init(void)
#ifdef BSP_USING_I2C1
#if defined(ES_I2C1_S
DA_GPIO_FUNC)&&defined(ES_I2C1_SDA_GPIO_PORT)&&defined(ES_I2C1_SDA
_GPIO_PIN)
gpio_instruct
.
func
=
ES_I2C1_S
DA
_GPIO_FUNC
;
ald_gpio_init
(
ES_I2C1_S
DA_GPIO_PORT
,
ES_I2C1_SDA
_GPIO_PIN
,
&
gpio_instruct
);
#if defined(ES_I2C1_S
CL_GPIO_FUNC)&&defined(ES_I2C1_SCL_GPIO_PORT)&&defined(ES_I2C1_SCL
_GPIO_PIN)
gpio_instruct
.
func
=
ES_I2C1_S
CL
_GPIO_FUNC
;
ald_gpio_init
(
ES_I2C1_S
CL_GPIO_PORT
,
ES_I2C1_SCL
_GPIO_PIN
,
&
gpio_instruct
);
#endif
#if defined(ES_I2C1_SDA_GPIO_FUNC)&&defined(ES_I2C1_SDA_GPIO_PORT)&&defined(ES_I2C1_SDA_GPIO_PIN)
...
...
bsp/essemi/es32f369x/drivers/drv_spi.c
浏览文件 @
0f6a7539
...
...
@@ -283,8 +283,8 @@ int rt_hw_spi_init(void)
gpio_instruct
.
pupd
=
GPIO_PUSH_UP_DOWN
;
gpio_instruct
.
odos
=
GPIO_PUSH_PULL
;
gpio_instruct
.
podrv
=
GPIO_OUT_DRIVE_
1
;
gpio_instruct
.
nodrv
=
GPIO_OUT_DRIVE_
1
;
gpio_instruct
.
podrv
=
GPIO_OUT_DRIVE_
6
;
gpio_instruct
.
nodrv
=
GPIO_OUT_DRIVE_
6
;
gpio_instruct
.
type
=
GPIO_TYPE_TTL
;
gpio_instruct
.
flt
=
GPIO_FILTER_DISABLE
;
...
...
bsp/essemi/es32f369x/drivers/drv_uart.c
浏览文件 @
0f6a7539
...
...
@@ -198,8 +198,8 @@ static rt_err_t es32f3x_configure(struct rt_serial_device *serial, struct serial
gpio_initstructure
.
mode
=
GPIO_MODE_OUTPUT
;
gpio_initstructure
.
odos
=
GPIO_PUSH_PULL
;
gpio_initstructure
.
pupd
=
GPIO_PUSH_UP
;
gpio_initstructure
.
podrv
=
GPIO_OUT_DRIVE_
1
;
gpio_initstructure
.
nodrv
=
GPIO_OUT_DRIVE_
1
;
gpio_initstructure
.
podrv
=
GPIO_OUT_DRIVE_
6
;
gpio_initstructure
.
nodrv
=
GPIO_OUT_DRIVE_
6
;
gpio_initstructure
.
flt
=
GPIO_FILTER_DISABLE
;
gpio_initstructure
.
type
=
GPIO_TYPE_TTL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录