BSP

【外设及组件精华帖及常见问题汇总】

发布于 2019-01-25 17:21:17
    本帖最后由 misonyo 于 2019-1-29 17:29 编辑



[md]## 外设及组件使用精华帖汇总

### 串口设备

* [玩溜 GD32303E-EVAL BSP 系列(二)---- 读取 GPS 传感器数据](https://fastadmin.rt-thread.org/ask/question/7033.html)

* [小白也能玩转 RT-Thread 之串口设备](https://www.rt-thread.org/qa/thread-5790-1-1.html)

* [在 console 和 shell 中使用 JLINK RTT 来代替串口调试设备](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=7152&extra=)

* [官网《I/O 设备管理》 中的串口设备操作例程](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=7408&highlight=%E4%B8%B2%E5%8F%A3)

* [基于 LPC1768 及 RT-Thread Nano3.0.3 添加串口](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=6925&extra=page%3D1)

### I2C 设备

* [使用 RT-Thread 的 I2C 总线读写 EEPROM 或铁电 (FRAM)](https://www.rt-thread.org/qa/thread-3471-1-1.html)

* [分享 RT-Thread I2C 驱动 at24cxx](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=9854&highlight=i2c)

* [应用笔记:RT-Thread I2C 设备应用指南 -- 基于 GY-521 MPU-6050 模块](https://www.rt-thread.org/qa/thread-6982-1-1.html)

* [基于 LPC1768 及 RT-Thread Nano3.0.3 添加 I2C 接口的 EEPROM](https://www.rt-thread.org/qa/thread-6924-1-1.html)

* [使用 I2C 驱动框架读取 LM75 的信号](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=10280&extra=page%3D1)

### SPI 设备

* [使用 SFUD 库来操作 SPI Flash 设备](https://www.rt-thread.org/qa/thread-5520-1-1.html)

* [玩溜 GD32303E-EVAL BSP 系列(五)---- 设备连接网络 (ENC28J60)](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=7087&highlight=%E7%8E%A9%E6%BA%9CGD32303E)

* [应用笔记:RT-Thread SPI 设备应用指南 -- 基于 OLED 显示屏 (SSD1351 控制器)](https://www.rt-thread.org/qa/thread-6981-1-1.html)

* [基于 LPC1768 及 RT-Thread Nano3.0.3 添加 SPI 接口的 Flash](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=6929&extra=)

### RTC 设备

* [基于 LPC1768 及 RT-Thread Nano3.0.3 添加 RTC](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=6941&extra=page%3D1)

### PIN 设备

* [玩溜 GD32303E-EVAL BSP 系列(三)---- 读取温度湿度传感器数据](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=7038&page=1&extra=#pid34354)

* [小白也能玩转 RT-Thread 之通用 GPIO 设备](https://www.rt-thread.org/qa/thread-5791-1-1.html)

### 文件系统

* [玩溜 GD32303E-EVAL BSP 系列(四)---- 使用文件系统保存数据](https://www.rt-thread.org/qa/thread-7045-1-1.html)

* [基于 LPC1768 及 RT-Thread Nano3.0.3 添加 DFS 文件系统](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=6930&extra=page%3D1)

* [基于 LPC1768 及 RT-Thread Nano3.0.3 添加 FATFS 文件系统](https://www.rt-thread.org/qa/thread-6933-1-1.html)

### FinSH

* [基于 LPC1768 及 RT-Thread Nano3.0.3 添加 FinSH](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=6907&extra=page%3D1)

* [基于 LPC1768 及 RT-Thread Nano3.0.3 添加 FinSH 权限管理](https://www.rt-thread.org/qa/thread-6917-1-1.html)

### 软件包

* [玩溜 GD32303E-EVAL BSP 系列(六)----OneNET 云平台接入](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=7088&highlight=%E7%8E%A9%E6%BA%9CGD32303E)

### 其他

* [基于 LPC1768 使用 MKD 添加 Nano3.0.3](https://www.rt-thread.org/qa/thread-6906-1-1.html)

## 外设及组件使用常见问题汇总

### Q: 新 bsp/stm32 BSP 怎么使用串口 DMA 模式。

**A:**

* 首先在 menuconfig 里面使能串口的 DMA 模式,如下图所示使能串口 3 的 DMA 接收模式:

uart-dma-rx.png

* 然后打开串口时使用 RT_DEVICE_FLAG_DMA_RX 参数打开:

```c
#define SAMPLE_UART_NAME "uart3" /* 串口设备名称 */
static rt_device_t serial; /* 串口设备句柄 */
/* 查找串口设备 */
serial = rt_device_find(SAMPLE_UART_NAME);

/* 以 DMA 接收及轮询发送模式打开串口设备 */
rt_device_open(serial, RT_DEVICE_FLAG_DMA_RX);
```

### Q: 串口接收不定长数据该怎么处理?

**A:**

* 参考帖子 [玩溜 GD32303E-EVAL BSP 系列(二)---- 读取 GPS 传感器数据](https://fastadmin.rt-thread.org/ask/question/7033.html) 提供的源代码。开发板通过串口获取 GPS 传感器的数据, 使用事件和串口接收回调函数配合接受数据与解析数据。

* 参考 [dwin 屏幕](https://github.com/rtpkgs/dwin/blob/master/dwin/basic/dwin_trans.c) 的使用, 主要利用 sem 信号量与串口接收回调函数配合接受数据与解析数据。

### Q: 串口发送数据时,当发送数据 0x0A 时,会被自动转换为 0x0D 0x0A 两个字节发送。

**A:** 串口使用 RT_DEVICE_FLAG_STREAM 方式打开或者注册时,输出的字符是 "\n" 时,会自动在前面补一个 "\r" 做分行。

### Q: 新 STM32 BSP(bsp/stm32) SPI 驱动提供的 rt_hw_spi_device_attach() 怎么使用,要挂载一个新的设备怎么操作?

**A:**

* 可以参考 RT-Thread 官方文档 SPI 设备章节对挂载 SPI 设备的介绍。

* 一般 SPI 总线命名原则为 spix, SPI 设备命名原则为 spixy ,如 spi10 表示挂载在 spi1 总线上的 0 号设备。

1. 先注册 SPI 总线,名称一般为 spi1,spi2。注册成功可使用 list_device 查看。

2. 然后挂载 SPI 设备到 SPI1 总线上,SPI 设备名称为 spi10。

### Q: 在中断 ISR 中调用 SPI 发送数据相关函数,导致 assertion 报错。Function[rt_mutex_take] shall not be used in ISR,assertion failed at function:rt_mutex_take, line number:656。

**A:** RT-Thread SPI 和 I2C 数据收发相关函数会调用 rt_mutex_take(),此函数不能再中断函数中使用。

### Q: RT-Thread I2C 的数据传输接口使用的从机地址不包含读写位!

**A:** RT-Thread I2C驱动框架对地址和读写位是分开处理的,底层发送的地址数据时会将地址左移 1 位再或上读写位。[/md]

查看更多

关注者
0
被浏览
9.3k
12 个回答
XQQ
XQQ 2019-01-28
d=====( ̄▽ ̄*)b
戎传林
戎传林 2019-06-03
STM32 H750板子,H743的内核是否支持?
whj467467222
whj467467222 2019-06-03
戎传林 发表于 2019-6-3 14:41
STM32 H750板子,H743的内核是否支持?


模拟IIC可以用,其他的不知道。
戎传林
戎传林 2019-06-04
whj467467222 发表于 2019-6-3 15:10
模拟IIC可以用,其他的不知道。


模拟IIC就是两个GPIO,板子都可以跑吧。我想知道RT-Thread系统,能不能在H750上运行
whj467467222
whj467467222 2019-06-04
戎传林 发表于 2019-6-4 10:22
模拟IIC就是两个GPIO,板子都可以跑吧。我想知道RT-Thread系统,能不能在H750上运行 ...


可以的,而且我认识的人,已经在用了,因为不是开发板所以就没有PR。
戎传林
戎传林 2019-06-05
whj467467222 发表于 2019-6-4 11:38
可以的,而且我认识的人,已经在用了,因为不是开发板所以就没有PR。


好的,谢谢哈:lol
WillianChan
WillianChan 2019-06-12
戎传林 发表于 2019-6-4 10:22
模拟IIC就是两个GPIO,板子都可以跑吧。我想知道RT-Thread系统,能不能在H750上运行 ...


目前尚未有针对H750的BSP,不过有针对stm32h743-atk-apollo的BSP,https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/stm32h743-atk-apollo,可以尝试参考它自己做一份针对H750的BSP噢:lol
Tristan_C
Tristan_C 2019-06-19
STM32的BSP通用模板什么时候把L0xx的加进来啊?
Mculover666
Mculover666 2019-08-26
果断收藏哈哈哈,AN文档看的很爽

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友