找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1429|回复: 3
打印 上一主题 下一主题
收起左侧

RT_Thread操作系统的笔记 思维导图

[复制链接]
跳转到指定楼层
楼主
ID:313887 发表于 2023-8-25 10:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT_Thread操作系统的笔记

RT_Thread学习笔记.pdf

1.12 MB, 下载次数: 48, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:313887 发表于 2023-9-12 11:00 | 只看该作者
RT_THread操作系统下的SPI驱动方式分为以下五个步骤: 1.定义SPI设备名称 #define AD7705_SPI_BUS      "spi1" #define AD7705_SPI_DEV_NAME "spi10" 2.挂载SPI设备到SPI总线 rt_hw_spi_device_attach(ADC_SPI_BUS, ADC_SPI_DEV_NAME, GPIOA, GPIO_PIN_4);//首先将SPI设备挂载到SPI总线上 spi_dev_adc=(struct rt_spi_device *)rt_device_find(ADC_SPI_DEV_NAME);     //查找是否有对应的设备 if(spi_dev_adc==RT_NULL) {      rt_kprintf("has not find the spi device...\n"); }  3.配置SPI的工作模式 /***********配置SPI工作模式***********/ struct rt_spi_configuration cfg; cfg.data_width=8; cfg.mode=RT_SPI_MASTER|RT_SPI_MODE_3|RT_SPI_MSB; cfg.max_hz=160*1000;    //SPI传输速度需要慎重考虑 rt_spi_configure(spi_dev_adc, &cfg); 4.SPI端口初始化 /****SPI的GPIO端口初始化***/ void adc_gpio_init(void) {   __HAL_RCC_GPIOC_CLK_ENABLE();     rt_pin_mode(AD7705_DRDY, PIN_MODE_INPUT);   //DRDY设置成输入模式     rt_pin_mode(AD7705_RESET, PIN_MODE_OUTPUT); //RESET设置成输出模式     rt_pin_write(AD7705_RESET, PIN_LOW);        //先复位,然后等待一段时间,再将引脚拉高     rt_thread_mdelay(100);     rt_pin_write(AD7705_RESET, PIN_HIGH);  }  5.进行数据传输 void adc_reg_write(rt_uint8_t cmd) {    struct rt_spi_message msg1;     /**************发送数据******************/    msg1.send_buf=&cmd;    msg1.recv_buf=RT_NULL;//只进行发送工作    msg1.length=1;        //发送的数据长度为1个字节    msg1.cs_take=1;       //发送数据之前首先将CS片选信号拉低    msg1.cs_release=1;    //发送数据结束之后将CS信号拉高    msg1.next=RT_NULL;     rt_spi_transfer_message(spi_dev_adc, &msg1); }
回复

使用道具 举报

板凳
ID:313887 发表于 2023-9-25 23:25 | 只看该作者

RE: RT_Thread系统驱动LoRa模块


1、HC-14的LoRa模块共计6个引脚,分别是LoRa------STM32
VCC------>5V
GND----->GND
RX-------->TX
TX-------->RX
STA------>不连接
KEY------>当Key引脚接入GND的时候,LoRa模块进入透传模式;
当Key引脚悬空的时候,LoRa模块进入透传模式;
2、RT_Thread操作系统上,驱动LoRa模块的步骤
(2.1)在board.h中设置需要驱动的串口号和DMA定义

(2.2)在stm32f4xx_hal_conf.h中使能串口

(2.3)串口配置
回复

使用道具 举报

地板
ID:313887 发表于 2023-12-25 22:12 | 只看该作者
RT_Thread系统中出现下图所示的问题,

(rt_object_get_type((rt_object_t)thread) == RT_Object_Class_Thread) assertion failed at function:rt_thread_sleep, line number:576

此时的解决办法就是增加RT_Thread线程的内存大小
thread_adc=rt_thread_create("adc_thread", adc_entry, NULL, 256, 20,30);
改为
thread_adc=rt_thread_create("adc_thread", adc_entry, NULL, 1024, 20,30);

/*****************************单独进行浮点数显示的函数****************************************/
#define DBG_BUFF_MAX_LEN 256
int dbg_printf(const char *fmt,...)
{
   va_list args;
   static char rt_log_buf[DBG_BUFF_MAX_LEN]={0};

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表