国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2025年07月18日(星期五)

2019年07月18日 | FreeRTOS學習筆記——基礎(chǔ)知識與移植(STM32F103)

發(fā)布者:科技徜徉 來源: eefocus關(guān)鍵字:FreeRTOS  基礎(chǔ)知識  移植  STM32F103 手機看文章 掃描二維碼
隨時隨地手機看文章

1.1 前后臺系統(tǒng):


    早期嵌入式開發(fā)沒有嵌入式操作系統(tǒng)的概念 ,直接操作裸機,在裸機上寫程序,比如用51單片機基本就沒有操作系統(tǒng)的概念。通常把程序分為兩部分:前臺系統(tǒng)和后臺系統(tǒng)。


     簡單的小系統(tǒng)通常是前后臺系統(tǒng),這樣的程序包括一個死循環(huán)和若干個中斷服務(wù)程序:應(yīng)用程序是一個無限循環(huán),循環(huán)中調(diào)用API函數(shù)完成所需的操作,這個大循環(huán)就叫做后臺系統(tǒng)。中斷服務(wù)程序用于處理系統(tǒng)的異步事件,也就是前臺系統(tǒng)。前臺是中斷級,后臺是任務(wù)級。



1.2 RTOS系統(tǒng):


       RTOS全稱為:Real Time OS,就是實時操作系統(tǒng),強調(diào)的是:實時性。實時操作系統(tǒng)又分為硬實時和軟實時。硬實時要求在規(guī)定的時間內(nèi)必須完成操作 ,硬實時系統(tǒng)不允許超時,在軟實時里面處理過程超時的后果就沒有那么嚴格。

       在實時操作系統(tǒng)中,我們可以把要實現(xiàn)的功能劃分為多個任務(wù),每個任務(wù)負責實現(xiàn)其中的一部分,每個任務(wù)都是一個很簡單的程序,通常是一個死循環(huán)。

       RTOS操作系統(tǒng):FreeRTOS,UCOS,RTX,RT-Thread,DJYOS等。

       RTOS操作系統(tǒng)的核心內(nèi)容在于:實時內(nèi)核。


可剝奪型內(nèi)核:


     RTOS的內(nèi)核負責管理所有的任務(wù),內(nèi)核決定了運行哪個任務(wù),何時停止當前任務(wù)切換到其他任務(wù),這個是內(nèi)核的多任務(wù)管理能力。多任務(wù)管理給人的感覺就好像芯片有多個CPU,多任務(wù)管理實現(xiàn)了CPU資源的最大化利用,多任務(wù)管理有助于實現(xiàn)程序的模塊化開發(fā),能夠?qū)崿F(xiàn)復雜的實時應(yīng)用。

     RTOS中的經(jīng)典代表作:FreeRTOS,而FreeOS的內(nèi)核是可剝奪型的,所以我們簡單提一下什么是可剝奪型內(nèi)核,關(guān)于FreeRTOS內(nèi)核的詳細內(nèi)容我們會在后續(xù)的視頻中專門講解的。

     可剝奪內(nèi)核顧名思義就是可以剝奪其他任務(wù)的CPU使用權(quán),它總是運行就緒任務(wù)中的優(yōu)先級最高的那個任務(wù)。



2.1 FreeRTOS系統(tǒng)簡介:


       FreeRTOS是一個可裁剪、可剝奪型的多任務(wù)內(nèi)核,而且沒有任務(wù)數(shù)限制。FreeRTOS提供了實時操作系統(tǒng)所需的所有功能,包括資源管理、同步、任務(wù)通信等。

       FreeRTOS是用C和匯編來寫的,其中絕大部分都是用C語言編寫的,只有極少數(shù)的與處理器密切相關(guān)的部分代碼才是用匯編寫的,F(xiàn)reeRTOS結(jié)構(gòu)簡潔,可讀性很強!最主要的是非常適合初次接觸嵌入式實時操作系統(tǒng)學生、嵌入式系統(tǒng)開發(fā)人員和愛好者學習。


為什么學FreeRTOS


1、因為FreeROTS開源。

2、FreeRTOS免費

3、FreeRTOS是很多第三方組件欽定的系統(tǒng)!


2.2 FreeRTOS相關(guān)資料查找:


1、FreeRTOS官網(wǎng):http://www.freertos.org/。

2、開源電子網(wǎng):www.openedv.com。

3、其他論壇。


FreeRTOS 移植


2.2.1 向工程中添加相應(yīng)文件

1、添加FreeRTOS 源碼

在基礎(chǔ)工程中新建一個名為FreeRTOS 的文件夾,如圖2.2.1.1 所示:



創(chuàng)建FreeRTOS 文件夾以后就可以將FreeRTOS 的源碼添加到這個文件夾中,添加完以后如圖2.2.1.2 所示:



在1.3.2 小節(jié)中詳細的講解過portable 文件夾,我們只需要留下keil、MemMang 和RVDS這三個文件夾,其他的都可以刪除掉,完成以后如圖2.2.1.3 所示:



2、向工程分組中添加文件

打開基礎(chǔ)工程,新建分組FreeRTOS_CORE 和FreeRTOS_PORTABLE,然后向這兩個分組中添加文件,如圖2.2.1.4 所示:



分組FreeRTOS_CORE 中的文件在什么地方就不說了,打開FreeRTOS 源碼一目了然。重點來說說FreeRTOS_PORTABLE 分組中的port.c 和heap_4.c 是怎么來的,port.c 是RVDS 文件夾下的ARM_CM3 中的文件,因為STM32F103 是Cortex-M3 內(nèi)核的,因此要選擇ARM_CM3中的port.c 文件。heap_4.c 是MemMang 文件夾中的,前面說了MemMang 是跟內(nèi)存管理相關(guān)

的,里面有5 個c 文件:heap_1.c、heap_2.c、heap_3.c、heap_4.c 和heap_5.c。這5 個c 文件是五種不同的內(nèi)存管理方法,就像從北京到上海你可以坐火車、坐飛機,如果心情好的話也可以走路,反正有很多種方法,只要能到上海就行。這里也一樣的,這5 個文件都可以用來作為FreeRTOS 的內(nèi)存管理文件,只是它們的實現(xiàn)原理不同,各有利弊。這里我們選擇heap_4.c,至于原因,后面會有一章節(jié)專門來講解FreeRTOS 的內(nèi)存管理,到時候大家就知道原因了。這里就先選擇heap_4.c,畢竟本章的重點是FreeRTOS 的移植。


3、添加相應(yīng)的頭文件路徑

添加完FreeRTOS 源碼中的C 文件以后還要添加FreeRTOS 源碼的頭文件路徑,頭文件路徑如圖2.2.1.5 所示:



頭文件路徑添加完成以后編譯一下,看看有沒有什么錯誤,結(jié)果會發(fā)現(xiàn)提示打不開“FreeRTOSConfig.h”這個文件,如圖2.2.1.6 所示:



這是因為缺少FreeRTOSConfig.h 文件,這個文件在哪里找呢?你可以自己創(chuàng)建,顯然這不是一個明智的做法。我們可以找找FreeRTOS 的官方移植工程中會不會有這個文件,打開FreeRTOS 針對STM32F103 的移植工程文件,文件夾是CORTEX_STM32F103_Keil,打開以后如圖2.2.1.7 所示:



果然!官方的移植工程中有這個文件,我們可以使用這個文件,但是建議大家使用我們例程中的FreeRTOSConf.h 文件,這個文件是FreeRTOS 的系統(tǒng)配置文件,不同的平臺其配置不同,但是我們提供的例程中的這個文件肯定是針對ALIENTEK 開發(fā)板配置正確的。這個文件復制到什么地方大家可以自行決定,這里我為了方便放到了FreeRTOS 源碼中的include 文件夾下。FreeRTOSConfig.h 是何方神圣?看名字就知道,他是FreeRTOS 的配置文件,一般的操作系統(tǒng)都有裁剪、配置功能,而這些裁剪及配置都是通過一個文件來完成的,基本都是通過宏定義來完成對系統(tǒng)的配置和裁剪的,關(guān)于FreeRTOS 的配置文件FreeRTOSConfig.h 后面也會有一章節(jié)來詳細的講解。到這里我們再編譯一次,沒有錯誤!如圖2.2.1.8 所示:



如果還有錯誤的話大家自行根據(jù)錯誤類型查找和修改錯誤!


2.2.2 修改SYSTEM 文件

SYSTEM 文件夾里面的文件一開始是針對UCOS 而編寫的,所以如果使用FreeRTOS 的話就需要做相應(yīng)的修改。本來打算讓SYSTEM 文件夾也支持FreeRTOS,但是這樣的話會導致SYSTEM 里面的文件太過于復雜,這樣非常不利于初學者學習,所以這里就專門針對FreeRTOS修改了SYSTEM 里面的文件。

1、修改sys.h 文件

sys.h 文件修改很簡單,在sys.h 文件里面用宏SYSTEM_SUPPORT_OS 來定義是否使用OS,我們使用了FreeRTOS,所以應(yīng)該將宏SYSTEM_SUPPORT_OS 改為1。


//0,不支持os

//1,支持os

#define SYSTEM_SUPPORT_OS 1 //定義系統(tǒng)文件夾是否支持OS

2、修改usart.c 文件

usart.c 文件修改也很簡單,usart.c 文件有兩部分要修改,一個是添加FreeRTOS.h 頭文件,默認是添加的UCOS 中的includes.h 頭文件,修改以后如下:

//如果使用os,則包括下面的頭文件即可.

#if SYSTEM_SUPPORT_OS

#include "FreeRTOS.h" //os 使用

#endif

另外一個就是USART1 的中斷服務(wù)函數(shù),在使用UCOS 的時候進出中斷的時候需要添加OSIntEnter()和OSIntExit(),使用FreeRTOS 的話就不需要了,所以將這兩行代碼刪除掉,修改以后如下:

void USART1_IRQHandler(void) //串口1 中斷服務(wù)程序

{

    u8 Res;

    if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)

    {

        Res =USART_ReceiveData(USART1); //讀取接收到的數(shù)據(jù)

        if((USART_RX_STA&0x8000)==0) //接收未完成

    {

    if(USART_RX_STA&0x4000) //接收到了0x0d

    {

        if(Res!=0x0a)USART_RX_STA=0; //接收錯誤,重新開始

        else USART_RX_STA|=0x8000; //接收完成了

    }

    else //還沒收到0X0D

    {

        if(Res==0x0d)USART_RX_STA|=0x4000;

        else

        {

            USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;

            USART_RX_STA++;

            if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;

        }

    }

    }

}

}

3、修改delay.c 文件

delay.c 文件修改的就比較大了,因為涉及到FreeRTOS 的系統(tǒng)時鐘,delay.c 文件里面有4個函數(shù),先來看一下函數(shù)SysTick_Handler(),此函數(shù)是滴答定時器的中斷服務(wù)函數(shù),代碼如下:

extern void xPortSysTickHandler(void);

//systick 中斷服務(wù)函數(shù),使用OS 時用到

void SysTick_Handler(void)

{

    if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系統(tǒng)已經(jīng)運行

    {

        xPortSysTickHandler();

    }

}

FreeRTOS 的心跳就是由滴答定時器產(chǎn)生的,根據(jù)FreeRTOS 的系統(tǒng)時鐘節(jié)拍設(shè)置好滴答定時器的周期,這樣就會周期觸發(fā)滴答定時器中斷了。在滴答定時器中斷服務(wù)函數(shù)中調(diào)用FreeRTOS 的API 函數(shù)xPortSysTickHandler()。delay_init()是用來初始化滴答定時器和延時函數(shù),代碼如下:

//初始化延遲函數(shù)

//SYSTICK 的時鐘固定為AHB 時鐘,基礎(chǔ)例程里面SYSTICK 時鐘頻率為AHB/8

//這里為了兼容FreeRTOS,所以將SYSTICK 的時鐘頻率改為AHB 的頻率!

//SYSCLK:系統(tǒng)時鐘頻率

void delay_init()

{

    u32 reload;

    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);//選擇外部時鐘 HCLK

    fac_us=SystemCoreClock/1000000; //不論是否使用OS,fac_us 都需要使用

    reload=SystemCoreClock/1000000; //每秒鐘的計數(shù)次數(shù) 單位為M

    reload*=1000000/configTICK_RATE_HZ; //根據(jù)configTICK_RATE_HZ 設(shè)定溢出

    //時間reload 為24 位寄存器,最大值:

    //16777216,在72M 下,約合0.233s 左右

    fac_ms=1000/configTICK_RATE_HZ; //代表OS 可以延時的最少單位

    SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk; //開啟SYSTICK 中斷

    SysTick->LOAD=reload; //每1/configTICK_RATE_HZ 秒中斷

    //一次

    SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //開啟SYSTICK

}

前面我們說了FreeRTOS 的系統(tǒng)時鐘是由滴答定時器提供的,那么肯定要根據(jù)FreeRTOS 的系統(tǒng)時鐘節(jié)拍來初始化滴答定時器了,delay_init()就是來完成這個功能的。FreeRTOS 的系統(tǒng)時鐘節(jié)拍由宏configTICK_RATE_HZ 來設(shè)置,這個值我們可以自由設(shè)置,但是一旦設(shè)置好以后我們就要根據(jù)這個值來初始化滴答定時器,其實就是設(shè)置滴答定時器的中斷周期。在基礎(chǔ)例程中滴答定時器的時鐘頻率設(shè)置的是AHB 的1/8,這里為了兼容FreeRTOS 將滴答定時器的時鐘頻率改為了AHB,也就是72MHz!這一點一定要注意!接下來的三個函數(shù)都是延時的,代碼如下:

//延時nus

//nus:要延時的us 數(shù).

//nus:0~204522252(最大值即2^32/fac_us@fac_us=168)

void delay_us(u32 nus)

{

    u32 ticks;

    u32 told,tnow,tcnt=0;

    u32 reload=SysTick->LOAD; //LOAD 的值

    ticks=nus*fac_us; //需要的節(jié)拍數(shù)

    told=SysTick->VAL; //剛進入時的計數(shù)器值

    while(1)

    {

        tnow=SysTick->VAL;

        if(tnow!=told)

        {

            //這里注意一下SYSTICK 是一個遞減的計數(shù)器就可以了.

            if(tnow            else tcnt+=reload-tnow+told;

            told=tnow;

            if(tcnt>=ticks)break; //時間超過/等于要延遲的時間,則退出.

        }

    };

}

//延時nms,會引起任務(wù)調(diào)度

//nms:要延時的ms 數(shù)

//nms:0~65535

void delay_ms(u32 nms)

{

    if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系統(tǒng)已經(jīng)運行

    {

        if(nms>=fac_ms) //延時的時間大于OS 的最少時間周期

        {

            vTaskDelay(nms/fac_ms); //FreeRTOS 延時

        }

        nms%=fac_ms; //OS 已經(jīng)無法提供這么小的延時了,

        //采用普通方式延時

    }

    delay_us((u32)(nms*1000)); //普通方式延時

}

//延時nms,不會引起任務(wù)調(diào)度

//nms:要延時的ms 數(shù)

void delay_xms(u32 nms)

{

    u32 i;

    for(i=0;i}

delay_us()是us 級延時函數(shù),delay_ms 和delay_xms()都是ms 級的延時函數(shù),delay_us()和delay_xms()不會導致任務(wù)切換。delay_ms()其實就是對FreeRTOS 中的延時函數(shù)vTaskDelay()的簡單封裝,所以在使用delay_ms()的時候就會導致任務(wù)切換。delay.c 修改完成以后編譯一下,會提示如圖2.2.2.1 所示錯誤:


圖2.2.2.1 的錯誤提示表示在port.c、delay.c 和stm32f10x_it.c 中三個重復定義的函數(shù):SysTick_Handler()、SVC_Handler()和PendSV_Handler(),這三個函數(shù)分別為滴答定時器中斷服務(wù)函數(shù)、SVC 中斷服務(wù)函數(shù)和PendSV 中斷服務(wù)函數(shù),將stm32f10x_it.c 中的三個函數(shù)屏蔽掉,如圖2.2.2.2 所示:



再次編譯代碼,應(yīng)該沒有錯誤了,如果還是錯誤的話自行根據(jù)錯誤類型修改!至此,SYSTEM文件夾就修改完成了。


2.3 移植驗證實驗

2.3.1 實驗程序設(shè)計

1、實驗?zāi)康?p>編寫簡單的FreeRTOS 應(yīng)用代碼,測試FreeRTOS 的移植是否成功。鑒于大家還沒正式學習FreeRTOS,可以直接將本實驗代碼復制粘貼到自己的移植工程中。

2、實驗設(shè)計

本實驗設(shè)計四個任務(wù):start_task()、led0_task ()、led1_task ()和float_task(),這四個任務(wù)的任務(wù)功能如下:

start_task():用來創(chuàng)建其他三個任務(wù)。

led0_task ():控制LED0 的閃爍,提示系統(tǒng)正在運行。

led1_task ():控制LED1 的閃爍。

float_task():簡單的浮點測試任務(wù),用于測試STM32F4 的FPU 是否工作正常。

3、實驗工程

FreeRTOS 實驗2-1 FreeRTOS 移植實驗。

4、實驗程序與分析

●任務(wù)設(shè)置


#include "sys.h"

#include "delay.h"

#include "usart.h"

#include "led.h"

#include "FreeRTOS.h"

#include "task.h"

/************************************************

ALIENTEK 戰(zhàn)艦STM32F103 開發(fā)板 FreeRTOS 實驗2-1

FreeRTOS 移植實驗-庫函數(shù)版本

技術(shù)支持:www.openedv.com

淘寶店鋪:http://eboard.taobao.com

關(guān)注微信公眾平臺微信號:"正點原子",免費獲取STM32 資料。

廣州市星翼電子科技有限公司

作者:正點原子 @ALIENTEK

************************************************/

#define START_TASK_PRIO 1 //任務(wù)優(yōu)先級

#define START_STK_SIZE 128 //任務(wù)堆棧大小

TaskHandle_t StartTask_Handler; //任務(wù)句柄

void start_task(void *pvParameters); //任務(wù)函數(shù)

#define LED0_TASK_PRIO 2 //任務(wù)優(yōu)先級

#define LED0_STK_SIZE 50 //任務(wù)堆棧大小

TaskHandle_t LED0Task_Handler; //任務(wù)句柄

void led0_task(void *p_arg); //任務(wù)函數(shù)

#define LED1_TASK_PRIO 3 //任務(wù)優(yōu)先級

#define LED1_STK_SIZE 50 //任務(wù)堆棧大小

TaskHandle_t LED1Task_Handler; //任務(wù)句柄

void led1_task(void *p_arg); //任務(wù)函數(shù)

● main()函數(shù)

int main(void)

{

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//設(shè)置系統(tǒng)中斷優(yōu)先級分組4

    delay_init(); //延時函數(shù)初始化

    uart_init(115200); //初始化串口

    LED_Init(); //初始化LED

    //創(chuàng)建開始任務(wù)

    xTaskCreate((TaskFunction_t )start_task, //任務(wù)函數(shù)

    (const char* )"start_task", //任務(wù)名稱

    (uint16_t )START_STK_SIZE, //任務(wù)堆棧大小

    (void* )NULL, //傳遞給任務(wù)函數(shù)的參數(shù)

    (UBaseType_t )START_TASK_PRIO, //任務(wù)優(yōu)先級

    (TaskHandle_t* )&StartTask_Handler); //任務(wù)句柄

    vTaskStartScheduler(); //開啟任務(wù)調(diào)度

}

● 任務(wù)函數(shù)

//開始任務(wù)任務(wù)函數(shù)

void start_task(void *pvParameters)

{

    taskENTER_CRITICAL(); //進入臨界區(qū)

    //創(chuàng)建LED0 任務(wù)

[1] [2]
關(guān)鍵字:FreeRTOS  基礎(chǔ)知識  移植  STM32F103 引用地址:FreeRTOS學習筆記——基礎(chǔ)知識與移植(STM32F103)

上一篇:STM32CubeMX+FreeRTOS實驗---使用兩個實例,共用一個task
下一篇:STM32使用FreeRTOS中的鏈表創(chuàng)建節(jié)點與列表項

推薦閱讀

據(jù)外媒報道,據(jù)法國市場研究公司Yole?Developpement稱,預計到2023年,碳化硅功率器件市場市值將達14億美元,2017年至2023年的年復合增長率預計為29%。上述數(shù)字表明,2017年碳化硅(SiC)功率元件市值約為3億美元,2018年將達3.9億美元,2019年將持續(xù)增長到5億美元。Yole斷言,汽車行業(yè)采用碳化硅,將是未來幾年的關(guān)鍵趨勢。目前,碳化硅功率器件市場主要...
1、環(huán)境說明(1)使用的是普中STM32F103開發(fā)板(2)keil 5軟件2、目的點亮開發(fā)板上的LED1燈。3、步驟(1)定義一系列寄存器的宏。#define PERIPH_BASE ((unsigned int)0x40000000) #define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000)#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)#define GPIOC_CRL *(unsigned i...
  根據(jù)消息,以機器人服務(wù)為賣點的日本軟銀計劃與臺灣鴻海精密工業(yè)進行合作,兩家公司將聯(lián)手推出具有人工智能技術(shù)的人形服務(wù)機器人。   報道稱,雙方將設(shè)立合資公司,2015年內(nèi)就將以每年1萬臺的規(guī)模實施量產(chǎn)。該機器人有望應(yīng)用于顧客接待和護理等廣泛領(lǐng)域,但目前生產(chǎn)成本過高成為普及的瓶頸。此次將通過日臺企業(yè)合作構(gòu)建可低價量產(chǎn)的體制,以盡早...
智能倉儲的應(yīng)用已逐步成為一種趨勢,但出于成本和技術(shù)的考慮,目前“玩家”基本都是各個行業(yè)的頭部企業(yè),高昂的成本和技術(shù)門檻足以讓中小企業(yè)望而卻步。然而,這并不表示中小企業(yè)不能夠進行物流升級。共享智慧云倉,就是專為解決這一問題而存在。?作為中國領(lǐng)先的現(xiàn)代倉儲與現(xiàn)代物流服務(wù)商,上海寶時供應(yīng)鏈管理有限公司(簡稱“寶時物流”)專注于為企業(yè)提...

史海拾趣

問答坊 | AI 解惑

非接觸式傳感器

最近老板讓查一下非接觸式傳感器,可以紅外,或者霍爾,其他的也可以考慮。     具體要執(zhí)行的任務(wù)如下     他跟我描述的大概和電梯差不多,就是一個上下移動的物體,當?shù)竭_預定位置的時候發(fā)出通過傳感器發(fā)出一個信號,以前用 ...…

查看全部問答∨

請教 怎么對地址總線的某一位賦值???

我的硬件是PXA270 通過16位數(shù)據(jù)總線連接到64MBYTE的FLASH P33,地址總線是26位 p33是由兩塊32M的flash組成的,在程序中不能同時訪問上下兩塊FLASH的地址 而是需要有一個地址總線,即最高位的A25作為內(nèi)部片選,選擇當前訪問的是BOTTOM 還是top flas ...…

查看全部問答∨

DSP+BCM5221 網(wǎng)絡(luò)連接問題

我用的TI的DM642DSP和BCM5221以太網(wǎng)芯片,進行連網(wǎng) 采用UDP協(xié)議,報文頭: typedef union {         Uint8 Bytes[6];         Uint16 Words[3]; }MacAddr; // Ethernet Header #define ETHHDR_SIZE&nbs ...…

查看全部問答∨

wince編譯的問題

wince編譯時,點擊sysgen后但是沒通過,出現(xiàn)在BSP里面有個錯誤,是不是得重新SYSGEN還是只需build出錯的代碼然后再make就可以了呀?…

查看全部問答∨

個人閑置FPGA開發(fā)板

這是本人在淘寶上購得的FPGA開發(fā)板的地址,http://item.taobao.com/item.htm?spm=a230r.1.10.12.XBn1Ov&id=13851235569,內(nèi)有詳細內(nèi)容,可供大家了解,由于個人原因,買后一直沒用過,可以說是全新的,現(xiàn)在要畢業(yè)實習離校了,想低價出售,個人的理 ...…

查看全部問答∨

有關(guān)LED 調(diào)光,你了解多少?

      在照明行業(yè),人們對于LED光源的調(diào)光往往有個誤區(qū),即認為對比其他光源(熒光燈,金鹵燈和鈉燈等)的調(diào)光LED相對容易的多。而現(xiàn)實是LED光源調(diào)光技術(shù)在工程中的應(yīng)用中往往不盡人意,為什么會是這樣的情形?是LED光源的調(diào)光 ...…

查看全部問答∨

哪些手段確保FPGA外部芯片提供的數(shù)據(jù)準確無誤地進入FPGA內(nèi)部?

通常采用哪些手段確保FPGA外部芯片(比如ad芯片,存儲器讀數(shù)據(jù)時)提供的數(shù)據(jù)準確無誤地進入FPGA內(nèi)部? \0\0\0eeworldpostqq…

查看全部問答∨

“芯靈思”免費送開發(fā)板活動第三期(9.15~9.21)及第二期中獎結(jié)果公布??!

本帖最后由 芯靈思 于 2014-9-14 23:41 編輯 “芯靈思”攜手“EEWorld”開展免費送開發(fā)板活動,于2014年9月1號開始,每周評獎一次,停止時間另行通知。趕緊喊你的小伙伴一起上!!人多機會大!!1、活動周期:每周評獎一次 (本期:9月15日00:00~9月 ...…

查看全部問答∨

貼片瓷片電容問題

    大家好,最近生產(chǎn)一批產(chǎn)品用到三星的4.7uF和1uF的0603瓷片電容,這批產(chǎn)品在通電老化后都出現(xiàn)不良現(xiàn)象,測量發(fā)現(xiàn)是這兩個電容漏電導致影響了電容兩端的電壓,更換同樣品牌同樣參數(shù)的電容后再老化一批沒有出現(xiàn)問題了。因為這個產(chǎn)品這兩 ...…

查看全部問答∨

java打包的問題

我照著雙上寫了個小程序,然后把它打包,包如下圖。 我想把它拷貝到另外一臺電腦上運行,可是拷過去發(fā)現(xiàn)是壓縮文件。 貌似只能用winrar打開。這是怎么回事啊?那打包就沒意義了呀。 高手解惑,謝謝! …

查看全部問答∨
小廣播
設(shè)計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved