国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評

這篇具有很好參考價值的文章主要介紹了【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

首發(fā)極術(shù)社區(qū)。如對兆易創(chuàng)新GD32F310 MCU感興趣,歡迎添加微信 aijishu2020 加入GD32技術(shù)討論群。

1. 測評背景

GD32作為國產(chǎn)化ARM中的旗艦,其全系列產(chǎn)品不僅市場占有率高,而且各具特色,廣受使用者好評。

筆者在測評這款GD32F310之前,曾經(jīng)使用過GD32F450,其強大的性能,低廉的價格、使用方便程度和快速的技術(shù)支持,都給我留下非常深刻的印象?;贕D32F450芯片,我主導(dǎo)了公司主打產(chǎn)品DSP平臺的國產(chǎn)化遷移。實踐證明GD32 M4除了在ADC性能,其他完全可以全面取代業(yè)內(nèi)中低端DSP芯片,同時也節(jié)省了通信和存儲方面的擴展開支。

兆易推出的GD32F310同作為M4下的定位為超值型的產(chǎn)品系列,引起了我的好奇。從產(chǎn)品平臺化的角度考慮,GD32F450可以作為中高端產(chǎn)品平臺的核心,而低成本平臺也需要一款性能強,價格優(yōu)的芯片,GD32F310即可作為考慮。
基于此,測評一方面考慮其運算性能,另一方面考慮其工控通信功能。

2、浮點DSP運算測評

【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評

從數(shù)據(jù)手冊可以看到,該款芯片支持FPU,集成DSP指令。
第一步,找相關(guān)庫,因為之前F450已經(jīng)有相關(guān)的移植,所以直接拿過來,添加庫和頭文件不再贅述。
【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評

第二步,添加相關(guān)宏定義。
【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評

第三步,編寫數(shù)學(xué)運算測試代碼,可以按自己的需求,這邊測試基本浮點運算,和正弦余弦之類。
【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評

第四步,通過串口看時間消耗,以時鐘tikc數(shù)為單位,當(dāng)中涉及的串口外設(shè)初始化,和printf重定向也不必多說。
【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評

結(jié)論,用ARM MATH庫時,GD32F310正弦余弦運算消耗與GD32F450基本等同,而基本數(shù)學(xué)運算消耗大約是GD32F450的兩倍,不過這是超值版與超性能版的對比,不具備參考意義,可以將同樣測試用于預(yù)取代的芯片上再作對比。

3、Modbus通信測評

在工業(yè)場合應(yīng)用一款芯片,特別是低成本芯片,一般都會考慮用485通信,而大多采用的標(biāo)準(zhǔn)規(guī)約都是Modbus,所以,考慮實際應(yīng)用GD32F310一定需要移植Modbus。
第一步,協(xié)議棧的選擇,這里為了方便,選擇FreeModbus作為移植測試對象,下載源碼包,實際工業(yè)應(yīng)用時,大多選擇自研協(xié)議棧。
【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評

第二步,添加相關(guān)的源文件和頭文件。
【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評

第三步,對portserial.c porttimer.c作驅(qū)動接口的修改移植。如:

void
vMBPortSerialEnable( BOOL xRxEnable, BOOL xTxEnable )
{
    /* If xRXEnable enable serial receive interrupts. If xTxENable enable
     * transmitter empty interrupts.
     */
    //只接收
    if (xRxEnable == TRUE)
    {
        usart_interrupt_enable(comPort, USART_INT_RBNE);
    }
    else
    {
        usart_interrupt_disable(comPort, USART_INT_RBNE);
    }

    //只發(fā)送
    if(xTxEnable == TRUE)
    {
        usart_interrupt_enable(comPort, USART_INT_TBE);
    }
    else
    {
        usart_interrupt_disable(comPort, USART_INT_TBE);
    }
}

BOOL
xMBPortSerialPutByte( CHAR ucByte )
{
    /* Put a byte in the UARTs transmit buffer. This function is called
     * by the protocol stack if pxMBFrameCBTransmitterEmpty( ) has been
     * called. */
    usart_data_transmit(comPort, (uint8_t)ucByte);
    // while(RESET == usart_flag_get(USART2, USART_FLAG_TBE));
    return TRUE;
}

BOOL
xMBPortSerialGetByte( CHAR * pucByte )
{
    /* Return the byte in the UARTs receive buffer. This function is called
     * by the protocol stack after pxMBFrameCBByteReceived( ) has been called.
     */
    *pucByte = usart_data_receive(comPort);
    return TRUE;
}

void vMBPortTimerPoll(void)
{
    uint32_t timeCurrentCount = 0;
    uint32_t timeGapCount = 0;

    if (bTimeOutEnable)
    {
        timeCurrentCount = runTimeTicks;
        if (timeCurrentCount < timeLastCount)
        {
            timeGapCount = 0xffffffff - timeLastCount + timeCurrentCount;
        }
        else
        {
            timeGapCount = timeCurrentCount - timeLastCount;
        }

        //進行超時判斷
        if (timeGapCount > timeOutCount)
        {
            bTimeOutEnable = FALSE;
            (void)pxMBPortCBTimerExpired();     //關(guān)鍵的超時處理***********
        }
    }
}

第四步,測試使用合適的工具測試Modbus通信。
【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評

結(jié)論,該芯片在移植了FreeModbus協(xié)議棧后,能夠非常好地支持modbus通信,具有廣泛的應(yīng)用場景。

最后,貼一張測評板照片,感謝“技術(shù)社區(qū)”給予的寶貴測評機會。
【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評文章來源地址http://www.zghlxwxcb.cn/news/detail-408229.html

到了這里,關(guān)于【GD32F310開發(fā)板試用】浮點DSP運算及Modbus移植測評的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【STM32】STM32F4調(diào)用DSP庫實現(xiàn)FFT運算

    【STM32】STM32F4調(diào)用DSP庫實現(xiàn)FFT運算

    最近在整理之前的stm32筆記,打算把一些有價值的筆記發(fā)到CSDN分享一下。 在進行模擬/數(shù)字信號的轉(zhuǎn)換過程中,當(dāng)采樣頻率F大于信號中最高頻率 fmax 的 2 倍時(F2*fmax),采樣之后的數(shù)字信號完整地保留了原始信號中的信息。 設(shè)采樣頻率(單位時間可以采多少個信號樣本)為 F

    2023年04月24日
    瀏覽(58)
  • DSP_TMS320F28377D_算法加速方法2_添加浮點運算快速補充庫rts2800_fpu32_fast_supplement.lib

    DSP_TMS320F28377D_算法加速方法2_添加浮點運算快速補充庫rts2800_fpu32_fast_supplement.lib

    繼上一篇博客DSP_TMS320F28377D_算法加速方法1_拷貝程序到RAM運行_江湖上都叫我秋博的博客-CSDN博客之后,本文講第二種DSP算法加速的方法,該方法的加速效果很明顯,但是加速范圍僅限于32位浮點數(shù)下面這幾種函數(shù): 下面稍微解釋一下一些可能有疑問的點 1 電機控制中經(jīng)常對同一

    2024年02月10日
    瀏覽(30)
  • GD32F303固件庫開發(fā)

    GD32F303固件庫開發(fā)

    芯片和開發(fā)板都可免費申請,暫時只能以公司名義免費申請,填下下面表格即可。 https://www.wjx.top/vm/wFGhGPF.aspx 使用GDLINK、jlink、串口下載程序到GD芯片。 https://blog.csdn.net/qq_24312945/article/details/124325797 芯片讀保護以后,flash將不可以從外部讀取,這樣可以防止別人讀取或者盜取

    2023年04月17日
    瀏覽(20)
  • 【stm32開發(fā)筆記】基于HAL庫的STM32F4添加DSP庫

    【stm32開發(fā)筆記】基于HAL庫的STM32F4添加DSP庫

    本文分兩種方法添加DSP庫:1.CubeMX直接配置ioc添加; 2.KEIL內(nèi)添加; 簡述:補齊全部lib庫-添加DSP包-使能DSP勾選-添加頭文件及魔術(shù)棒配置-測試 1.補齊lib庫。( 如果使用直接默認(rèn)添加的庫,是不支持FPU的,所以需要補齊后找到所需的lib文件進行替換,在MX的工程管理欄,選擇復(fù)制所

    2024年02月16日
    瀏覽(145)
  • GD32F303高級定時器輸出互補PWM-開發(fā)筆記

    GD32F303高級定時器輸出互補PWM-開發(fā)筆記

    ? 總通道數(shù):4; ? 計數(shù)器寬度:16位; ? 時鐘源可選:內(nèi)部時鐘,內(nèi)部觸發(fā),外部輸入,外部觸發(fā); ? 多種計數(shù)模式:向上計數(shù),向下計數(shù)和中央計數(shù); ? 正交編碼器接口:被用來追蹤運動和分辨旋轉(zhuǎn)方向和位置; ? 霍爾傳感器接口:用來做三相電機控制; ? 可編程

    2024年02月09日
    瀏覽(40)
  • STM32開發(fā)(六)STM32F103 通信 —— RS485 Modbus通信編程詳解

    STM32開發(fā)(六)STM32F103 通信 —— RS485 Modbus通信編程詳解

    ??《上一篇》 ???《主目錄》 ???《下一篇》 了解 RS485 Modbus協(xié)議技術(shù) 。本實驗是基于STM32F103開發(fā) 實現(xiàn) 通過RS-485實現(xiàn)modbus協(xié)議。 準(zhǔn)備好了嗎?開始我的show time。 1、硬件開發(fā)準(zhǔn)備 主控:STM32F103ZET6 RS485收發(fā)器:SP3485P 2、軟件開發(fā)準(zhǔn)備 軟件開發(fā)使用虛擬機 + VScode + STM32Cub

    2024年02月03日
    瀏覽(25)
  • 單片機GD32F303RCT6 (Macos環(huán)境)開發(fā) (二十)—— 光感芯片veml7700的使用

    單片機GD32F303RCT6 (Macos環(huán)境)開發(fā) (二十)—— 光感芯片veml7700的使用

    1、veml有7個寄存器,每個十六位,見圖。 00是config寄存器, 01 02 是中斷設(shè)置的閾值 03是節(jié)能模式的設(shè)置 04 是得到的光的亮度值 05是得到的data of whole WHITE 06是中斷設(shè)置值。 2、我們只測試得到光的亮度值,所以veml寄存器設(shè)置如下: 設(shè)置gain,integration time ,power save mode ,interrup

    2024年02月04日
    瀏覽(30)
  • [GD32F4]基于GD32固件庫移植cherryusb[STM32F4]

    [GD32F4]基于GD32固件庫移植cherryusb[STM32F4]

    [GD32F4]基于GD32固件庫移植cherryusb[STM32F4] 使用開發(fā)板是淘寶買的不知名開發(fā)板,沒什么好說的,具體的型號是GD32F450VET6。 使用的cherryusb版本是0.9.0版本。 使用的GD32官方固件庫版本是:GD32F4xx_Firmware_Library_V3.0.4 cherryusb最牛的地方在于拋棄掉所有的依賴,只需要知道芯片的usb中斷

    2024年02月06日
    瀏覽(69)
  • GD32F4移植STM32F4

    GD32F4移植STM32F4

    近期在項目中采用了GD32F407VET6替換原項目中的STM32F407VET6,網(wǎng)傳GD的兼容性很好,之前也用F1系統(tǒng)的替換了一下,按照CSND各位大佬的經(jīng)驗一步步改進了代碼,測試直接通過,現(xiàn)在也一直在項目中實際應(yīng)用了,一直沒有出問題。 所以這SMT時,嘉立創(chuàng)沒有STM的貨果斷換成了GD,可換時

    2024年02月16日
    瀏覽(32)
  • GD32F4(9):GD32f4出現(xiàn)上電不工作,必須按復(fù)位程序才能跑起來

    GD32F4(9):GD32f4出現(xiàn)上電不工作,必須按復(fù)位程序才能跑起來

    繪制一個gd32450的pcb板子,結(jié)果燒錄程序后發(fā)生下面事情: 上電程序不能正常啟動或者偶爾可以正常啟動一次,很隨機。 當(dāng)上電后程序不啟動的時候,我再按一下mcu的reset按鍵,程序就能正常啟動了。 當(dāng)我debug調(diào)試的時候,回回都能正常啟動,根本定位不到問題 首先在板子里

    2023年04月08日
    瀏覽(81)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包