加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

【LPC845月餅板】+測(cè)試SPIFLASH的keil下載算法(二)

05/20 20:12
1648
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買(mǎi)成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買(mǎi)后不支持退換且無(wú)法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
電路板圖(3)
相關(guān)方案
  • 方案介紹
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

上一篇搞定了下載算法,下面就測(cè)試一下下載算法是否有效。

打開(kāi)之前的例子工程。先添加一個(gè)圖片bin數(shù)據(jù)到程序。這是個(gè)圖片數(shù)據(jù),等下就測(cè)試將這個(gè)數(shù)據(jù)下載到spiflash中,然后程序讀flash數(shù)據(jù),將圖片顯示到llcd屏上。

然后修改鏈接文件,添加flash映射的地址,這個(gè)地址在上篇下載算法里面設(shè)置的,地址在0X30000000位置,16MByte空間。實(shí)際存儲(chǔ)到flash的地址要減去這個(gè)0X30000000偏移量,因?yàn)閒lash存儲(chǔ)地址從0開(kāi)始的。

然后添加測(cè)試代碼并編譯下程序。

可以看到map文件定位數(shù)據(jù)正好在0x30000000地址開(kāi)始處了。

下一步設(shè)置添加下載算法了。

下載效果,可以看到左下角在下載數(shù)據(jù)了。

運(yùn)行程序。顯示圖片了,240*240.

uint8_t bmpBuffer[240*4];
extern const unsigned char gImage_1[];
extern const uint16_t c_bmp_clock_RGB565[];
/*!
 * @brief Main function
 */
int main(void)
{
    uint32_t addr;
    BOARD_InitBootClocks();
    SysTick_Config(SystemCoreClock / 1000U);
    init_cycle_counter(true);
    
    BOARD_InitBootPins();
    drv_gpio_init();
    BOARD_InitDebugConsole();
    
    drv_spi_gpio_init();
    drv_i2c_gpio_init();
    
    DbgConsole_Printf("LPC845 Mooncake Board Test!rn");
    
    spilcd_init();
    WS2812_Init();
    W25QXX_Init();
    
    __cycleof__("lcd_fresh_time(n/30000=X ms):")
    {
        spilcd_fill(0,0,240,240,LCD_RED);
    }
    delay_ms(100);
    __cycleof__("lcd_fresh_time(n/30000=X ms):")
    {
        spilcd_fill(0,0,240,240,LCD_GREEN);
    }
    delay_ms(100);
    __cycleof__("lcd_fresh_time(n/30000=X ms):")
    {
        spilcd_fill(0,0,240,240,LCD_BLUE);
    }
    delay_ms(100);
    
    DbgConsole_Printf("0x%0X rn",c_bmp_clock_RGB565);
    addr=c_bmp_clock_RGB565;
    __cycleof__("show 240*240 picture time:")
    {
        for (int i = 0; i < 120; i++)//(c_bmp_clock_RGB565-0x30000000)
        {
            W25QXX_Read((addr & 0x0FFFFFFF )+ i*240*4 ,bmpBuffer,240*4);
            spilcd_draw_bitmap(0,i*2,240,2,bmpBuffer);
        }
    }
    delay_ms(100);
    
//    DbgConsole_Printf("%0X rn",gImage_1);
//    addr=gImage_1;
//    __cycleof__("show 40*40 picture time:")
//    {
//        for (int i = 0; i < 4; i++)
//        {
//            W25QXX_Read((addr & 0x0FFFFFFF ) + i*800 ,bmpBuffer,800);
//            spilcd_draw_bitmap(100,100+i*10,40,10,bmpBuffer);
//        }
//    }
//    delay_ms(100);
    
//    for (int i = 0; i < BUFFER_SIZE; i++)
//    {
//        txBuffer[i] = i % 256;
//        rxBuffer[i] = 0U;
//    }
//    DbgConsole_Printf("W25QXX Erase Chip.rn");
//    W25QXX_EraseChip();
//    DbgConsole_Printf("W25QXX Read Data.rn");
//    W25QXX_Read(0,rxBuffer,64);
//    for (int i = 0; i < BUFFER_SIZE; i++)
//    {
//        DbgConsole_Printf("%02X ",rxBuffer[i]);
//    } 
//    DbgConsole_Printf("W25QXX Write Data.rn");
//    W25QXX_Write_NoCheck(0,txBuffer,BUFFER_SIZE);
//    DbgConsole_Printf("W25QXX Read Data to Check.rn");
//    for (int j = 0; j < BUFFER_SIZE; j++)
//    {
//        W25QXX_Read(0 + j*BUFFER_SIZE,rxBuffer,64);
//        for (int i = 0; i < BUFFER_SIZE; i++)
//        {
//            DbgConsole_Printf("%02X ",rxBuffer[i]);
//        }
//        DbgConsole_Printf("n");
//    }
    
    rgb_light = 0;

        while(1)
        {
        keyscan_fsm(&pt_key_scan);
        
//        ws2812rgb_clock_fsm(&pt_ws2812_rgb);    //效果1
        ws2812rgb_demo_fsm(&pt_ws2812_rgb);   //效果2
        
        GPIO_PortToggle(GPIO, 0, 1u << 0);  //led燈
        }
}

好了,測(cè)試OK。后面再也不用 擔(dān)心圖片字體把LPC845的64Kflash撐爆了。spiflash雖然不能做運(yùn)行代碼區(qū),但是儲(chǔ)存各種資源數(shù)據(jù)還是足夠了。

LPC845-MoonCake_test.rar (16.1 MB)

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
SN65HVD232D 1 Texas Instruments 3.3 V CAN Transceiver 8-SOIC -40 to 85

ECAD模型

下載ECAD模型
$2.72 查看
HFBR-2412TCZ 1 Foxconn Receiver, ST Connector, Through Hole Mount, ROHS COMPLIANT, PLASTIC, 8 PIN
$9.85 查看
LTST-C191KRKT 1 Lite-On Semiconductor Corporation Single Color LED, Red, Water Clear, 1.1mm, GREEN, PLASTIC PACKAGE-2

ECAD模型

下載ECAD模型
$0.08 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜