Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
卖小麦←_←
rt-thread
提交
66c6774d
R
rt-thread
项目概览
卖小麦←_←
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
66c6774d
编写于
8月 10, 2021
作者:
C
chenyingchun0312
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[bsp/stm32l496-st-nucleo] add usb device cdc configration
上级
ce1734fb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
113 addition
and
5 deletion
+113
-5
bsp/stm32/stm32l496-st-nucleo/README_zh.md
bsp/stm32/stm32l496-st-nucleo/README_zh.md
+4
-0
bsp/stm32/stm32l496-st-nucleo/applications/SConscript
bsp/stm32/stm32l496-st-nucleo/applications/SConscript
+3
-5
bsp/stm32/stm32l496-st-nucleo/applications/uart_sample.c
bsp/stm32/stm32l496-st-nucleo/applications/uart_sample.c
+101
-0
bsp/stm32/stm32l496-st-nucleo/board/Kconfig
bsp/stm32/stm32l496-st-nucleo/board/Kconfig
+5
-0
未找到文件。
bsp/stm32/stm32l496-st-nucleo/README_zh.md
浏览文件 @
66c6774d
...
@@ -96,6 +96,10 @@ msh >
...
@@ -96,6 +96,10 @@ msh >
本章节更多详细的介绍请参考
[
STM32 系列 BSP 外设驱动使用教程
](
../docs/STM32系列BSP外设驱动使用教程.md
)
。
本章节更多详细的介绍请参考
[
STM32 系列 BSP 外设驱动使用教程
](
../docs/STM32系列BSP外设驱动使用教程.md
)
。
5.
USBD CDC使用,参考文章
[
STM32L496 USB CDC适配
](
https://club.rt-thread.org/ask/article/2959.html
)
## 注意事项
## 注意事项
-
开机时如果不能打印 RT-Thread 版本信息,请重新选择 PC 端串口调试软件的串口号或将 BSP 中串口的 GPIO 速率调低
-
开机时如果不能打印 RT-Thread 版本信息,请重新选择 PC 端串口调试软件的串口号或将 BSP 中串口的 GPIO 速率调低
...
...
bsp/stm32/stm32l496-st-nucleo/applications/SConscript
浏览文件 @
66c6774d
...
@@ -6,11 +6,9 @@ src = Split('''
...
@@ -6,11 +6,9 @@ src = Split('''
main.c
main.c
'''
)
'''
)
if
GetDepend
([
'BSP_USING_SPI_LCD'
]):
if
GetDepend
([
'BSP_USING_USBD'
]):
src
+=
[
'lcd_sample.c'
]
if
GetDepend
([
'RT_USB_DEVICE_CDC'
]):
src
+=
[
'uart_sample.c'
]
if
GetDepend
([
'PKG_USING_NRF24L01'
]):
src
+=
[
'nrf24l01_init.c'
]
CPPPATH
=
[
str
(
Dir
(
'#'
)),
cwd
]
CPPPATH
=
[
str
(
Dir
(
'#'
)),
cwd
]
...
...
bsp/stm32/stm32l496-st-nucleo/applications/uart_sample.c
0 → 100644
浏览文件 @
66c6774d
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2018-08-15 misonyo first implementation.
*/
/*
* 程序清单:这是一个 串口 设备使用例程
* 例程导出了 uart_sample 命令到控制终端
* 命令调用格式:uart_sample uart2
* 命令解释:命令第二个参数是要使用的串口设备名称,为空则使用默认的串口设备
* 程序功能:通过串口输出字符串"hello RT-Thread!",然后错位输出输入的字符
*/
#include <rtthread.h>
#define SAMPLE_UART_NAME "vcom"
/* 串口设备名称 */
/* 用于接收消息的信号量 */
static
struct
rt_semaphore
rx_sem
;
static
rt_device_t
serial
;
/* 接收数据回调函数 */
static
rt_err_t
uart_input
(
rt_device_t
dev
,
rt_size_t
size
)
{
/* 串口接收到数据后产生中断,调用此回调函数,然后发送接收信号量 */
rt_sem_release
(
&
rx_sem
);
return
RT_EOK
;
}
static
void
serial_thread_entry
(
void
*
parameter
)
{
char
ch
;
while
(
1
)
{
/* 从串口读取一个字节的数据,没有读取到则等待接收信号量 */
while
(
rt_device_read
(
serial
,
-
1
,
&
ch
,
1
)
!=
1
)
{
/* 阻塞等待接收信号量,等到信号量后再次读取数据 */
rt_sem_take
(
&
rx_sem
,
RT_WAITING_FOREVER
);
}
/* 读取到的数据通过串口错位输出 */
ch
=
ch
+
1
;
rt_device_write
(
serial
,
0
,
&
ch
,
1
);
}
}
static
int
uart_sample
(
int
argc
,
char
*
argv
[])
{
rt_err_t
ret
=
RT_EOK
;
char
uart_name
[
RT_NAME_MAX
];
char
str
[]
=
"hello RT-Thread!
\r\n
"
;
if
(
argc
==
2
)
{
rt_strncpy
(
uart_name
,
argv
[
1
],
RT_NAME_MAX
);
}
else
{
rt_strncpy
(
uart_name
,
SAMPLE_UART_NAME
,
RT_NAME_MAX
);
}
/* 查找串口设备 */
serial
=
rt_device_find
(
uart_name
);
if
(
!
serial
)
{
rt_kprintf
(
"find %s failed!
\n
"
,
uart_name
);
return
RT_ERROR
;
}
/* 初始化信号量 */
rt_sem_init
(
&
rx_sem
,
"rx_sem"
,
0
,
RT_IPC_FLAG_FIFO
);
/* 以中断接收及轮询发送方式打开串口设备 */
rt_device_open
(
serial
,
RT_DEVICE_FLAG_INT_RX
);
//rt_device_open(serial, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX);
/* 设置接收回调函数 */
rt_device_set_rx_indicate
(
serial
,
uart_input
);
/* 发送字符串 */
rt_device_write
(
serial
,
0
,
str
,
(
sizeof
(
str
)
-
1
));
/* 创建 serial 线程 */
rt_thread_t
thread
=
rt_thread_create
(
"serial"
,
serial_thread_entry
,
RT_NULL
,
1024
,
25
,
10
);
/* 创建成功则启动线程 */
if
(
thread
!=
RT_NULL
)
{
rt_thread_startup
(
thread
);
}
else
{
ret
=
RT_ERROR
;
}
return
ret
;
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT
(
uart_sample
,
uart
device
sample
);
bsp/stm32/stm32l496-st-nucleo/board/Kconfig
浏览文件 @
66c6774d
...
@@ -60,6 +60,11 @@ menu "On-chip Peripheral Drivers"
...
@@ -60,6 +60,11 @@ menu "On-chip Peripheral Drivers"
config BSP_USING_ON_CHIP_FLASH
config BSP_USING_ON_CHIP_FLASH
bool "Enable on-chip FLASH"
bool "Enable on-chip FLASH"
default n
default n
config BSP_USING_USBD
bool "Enable OTGFS as USB device"
select RT_USING_USB_DEVICE
default n
source "../libraries/HAL_Drivers/Kconfig"
source "../libraries/HAL_Drivers/Kconfig"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录