嵌入式技术william hill官网
直播中

KK

4年用户 2909经验值
擅长:嵌入式技术
私信 关注
[经验]

【每日一练】RT-Thread Nano-自动初始化及MSH-EXPORT-2(第八节学习视频)

6.RT-Thread Nano-自动初始化及MSH-EXPORT-2

本视频为【每日一练】的第八节学习视频,注:刚开始学习的童鞋请从第一节视频开始打卡哦(本节视频在下面打卡即可)


学习任务:
1、按照教程,练习自动初始化的使用(自主练习)

2、执行自动初始化的函数,返回类型要求是什么类型?(单选)
A:int         B:char       C:void

3、使用INIT_BOARD_EXPORT()自动化的函数会在那个段之间进行初始化?(单选)
A:.rti_fn.0.end到.rti_fn.1.end  
B:.rti_fn.1.end到.rti_fn.6.end      


打卡规则详见
【每日一练】RT-Thread Nano入门全套教程,名师带路,不走弯路



往期回顾:
【每日一练】RT-Thread Nano-添加源码(第一节视频学习)
【每日一练】RT-Thread Nano-启动运行流程分析(第二节学习视频)
【每日一练】RT-Thread Nano-rt_kprintf支持(第三节视频学习)
【每日一练】RT-Thread Nano-Finsh组件支持(第四节学习视频)

【每日一练】RT-Thread Nano-线程创建1(第五节学习视频)
【每日一练】RT-Thread Nano-线程讲解2(第六节学习视频)
【每日一练】RT-Thread Nano-自动初始化及MSH-EXPORT-1(第七节学习视频)

  • 自动初始化.png

回帖(9)

jf_66501560

2021-5-25 00:25:31
答案:
1、
  1. /* SPI2 init function */
  2. int MX_SPI2_Init(void)
  3. {

  4.   hspi2.Instance = SPI2;
  5.   hspi2.Init.Mode = SPI_MODE_MASTER;
  6.   hspi2.Init.Direction = SPI_DIRECTION_2LINES;
  7.   hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
  8.   hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
  9.   hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
  10.   hspi2.Init.NSS = SPI_NSS_SOFT;
  11.   hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32;
  12.   hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
  13.   hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
  14.   hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  15.   hspi2.Init.CRCPolynomial = 7;
  16.   hspi2.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
  17.   hspi2.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
  18.   if (HAL_SPI_Init(&hspi2) != HAL_OK)
  19.   {
  20.     Error_Handler();
  21.   }

  22. }
  23. INIT_BOARD_EXPORT(MX_SPI2_Init);

2、A
3、A
1 举报
  • KK: 凌晨还不忘打卡,被深深感动了

逝我想太多

2021-5-25 09:32:12
int LED1_Control(void)
{
        LED1_Run_thread =                          /* 线程控制块指针 */
    rt_thread_create( "led1",              /* 线程名字 */
                      LED1_Run_thread_entry,   /* 线程入口函数 */
                      RT_NULL,             /* 线程入口函数参数 */
                      512,                 /* 线程栈大小 */
                      3,                   /* 线程的优先级 */
                      20);                 /* 线程时间片 */

        if(LED1_Run_thread != RT_NULL)
        {
                rt_thread_startup(LED1_Run_thread);
            rt_kprintf("thread LED1_Run_thread createdn");
        }
        return RT_NULL;
}
INIT_BOARD_EXPORT(LED1_Control);

2、A
3、A
1 举报
  • KK: 已经连续打卡八次,加油
  • Image_20210525093034.png

钱一

2021-5-25 20:03:52
1、按照教程,练习自动初始化的使用(自主练习)
int Pwm_Thread_Init(void){
    rt_thread_init(&pwm_thread, "pwm_thread", PWM_Thread_Entry, RT_NULL,
            &PWM_Thread_Stack[0], sizeof(PWM_Thread_Stack), 10, 10);
    rt_thread_startup(&pwm_thread);
    return 0;
}
INIT_APP_EXPORT(Pwm_Thread_Init);
2、执行自动初始化的函数,返回类型要求是什么类型?(单选)
A:int
3、使用INIT_BOARD_EXPORT()自动化的函数会在那个段之间进行初始化?(单选)
A:.rti_fn.0.end到.rti_fn.1.end
   微信图片_20210525193439.png



1 举报
  • KK: good ,要持续打卡哦

青云景龙

2021-5-25 22:31:22
1、照着官方的例程敲了一遍
/* 线程示例 */int thread_sample(void)
{
    /* 创建线程 1,名称是 thread1,入口是 thread1_entry*/
    tid1 = rt_thread_create("thread1",
                            thread1_entry, RT_NULL,
                            THREAD_STACK_SIZE,
                            THREAD_PRIORITY,
                                                                                                                THREAD_TIMESLICE);


    /* 如果获得线程控制块,启动这个线程 */
    if (tid1 != RT_NULL)
        rt_thread_startup(tid1);


    /* 初始化线程 2,名称是 thread2,入口是 thread2_entry */
    rt_thread_init(&thread2,
                   "thread2",
                   thread2_entry,
                   RT_NULL,
                   &thread2_stack[0],
                   sizeof(thread2_stack),
                   THREAD_PRIORITY - 1,
                                                                         THREAD_TIMESLICE);
    rt_thread_startup(&thread2);


    return 0;
}


/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(thread_sample, thread sample);
2、A
3、A


1 举报
  • KK: good,继续加油
  • 123.png

ZzzzzRui

2021-5-26 14:46:30
1、
微信图片_20210526144541.png
2、A
3、A
微信图片_20210526142725.png


举报

Hu y

2021-5-27 09:59:45
1、
2、A
3、A


举报
  • 批注 2021-05-27 095721.png
  • 批注 2021-05-27 095702.png

春天一满屋

2021-5-27 21:07:59
1、
  1. int Myfirst_Init(void)
  2. {
  3. //text


  4. }
  5. INIT_BOARD_EXPORT(

  6. Myfirst_Init);
2、A
3、A
举报

陈星闽

2021-5-30 15:14:04
本节主要学习快速函数初始化的方法,学会后可不用显示的调用初始化函数。
学习任务:
1、按照教程,练习自动初始化的使用(自主练习)
先定义初始化函数,在通过添加INIT_BOARD_EXPORT(初始化函数名)来完成自动初始化,也可以是INIT_DEV_EXPORT等宏定义
2、执行自动初始化的函数,返回类型要求是什么类型?(单选)
A:int         B:char       C:void
答案:A
3、使用INIT_BOARD_EXPORT()自动化的函数会在那个段之间进行初始化?(单选)
A:.rti_fn.0.end到.rti_fn.1.end  
B:.rti_fn.1.end到.rti_fn.6.end    答案:A
捕获.JPG   

举报

游走在01的海洋

2021-6-24 23:32:10
一答案:
1.//初始化PB1为输出.并使能时钟            
//LED IO初始化
int LED_Init(void)
{
    GPIO_InitTypeDef GPIO_Initure;


    __HAL_RCC_GPIOB_CLK_ENABLE();                   //开启GPIOB时钟
        __HAL_RCC_GPIOE_CLK_ENABLE();                   //开启GPIOE时钟
       
    GPIO_Initure.Pin=GPIO_PIN_5;                                 //PB5
    GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;          //推挽输出
    GPIO_Initure.Pull=GPIO_PULLUP;                  //上拉
    GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;    //高速
    HAL_GPIO_Init(GPIOB,&GPIO_Initure);


        GPIO_Initure.Pin=GPIO_PIN_5;                                 //PE5
        HAL_GPIO_Init(GPIOE,&GPIO_Initure);
       
    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);        //PB5置1,默认初始化后灯灭
    HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET);        //PE5置1,默认初始化后灯灭
}
//INIT_BOARD_EXPORT(LED_Init);
//INIT_PREV_EXPORT(LED_Init);
//INIT_DEVICE_EXPORT(LED_Init);
//INIT_COMPONENT_EXPORT(LED_Init);
//INIT_ENV_EXPORT(LED_Init);
INIT_APP_EXPORT(LED_Init);
2.A
3.A
二、图片


举报
  • 1.JPG

更多回帖

发帖
×
20
完善资料,
赚取积分