標題:
RT_Thread操作系統(tǒng)的筆記 思維導圖
[打印本頁]
作者:
liguanghui
時間:
2023-8-25 10:59
標題:
RT_Thread操作系統(tǒng)的筆記 思維導圖
RT_Thread操作系統(tǒng)的筆記
RT_Thread學習筆記.pdf
2023-8-25 10:58 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.12 MB, 下載次數(shù): 58, 下載積分: 黑幣 -5
作者:
liguanghui
時間:
2023-9-12 11:00
RT_THread操作系統(tǒng)下的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.進行數(shù)據(jù)傳輸 void adc_reg_write(rt_uint8_t cmd) { struct rt_spi_message msg1; /**************發(fā)送數(shù)據(jù)******************/ msg1.send_buf=&cmd; msg1.recv_buf=RT_NULL;//只進行發(fā)送工作 msg1.length=1; //發(fā)送的數(shù)據(jù)長度為1個字節(jié) msg1.cs_take=1; //發(fā)送數(shù)據(jù)之前首先將CS片選信號拉低 msg1.cs_release=1; //發(fā)送數(shù)據(jù)結束之后將CS信號拉高 msg1.next=RT_NULL; rt_spi_transfer_message(spi_dev_adc, &msg1); }
作者:
liguanghui
時間:
2023-9-25 23:25
標題:
RE: RT_Thread系統(tǒng)驅動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操作系統(tǒng)上,驅動LoRa模塊的步驟
(2.1)在board.h中設置需要驅動的串口號和DMA定義
(2.2)在stm32f4xx_hal_conf.h中使能串口
(2.3)串口配置
作者:
liguanghui
時間:
2023-12-25 22:12
RT_Thread系統(tǒng)中出現(xiàn)下圖所示的問題,
(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);
/*****************************單獨進行浮點數(shù)顯示的函數(shù)****************************************/
#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};
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1