現在買東西真的是太方便了

科技始終來自於惰性真的沒錯~~~好像怪怪的~~

因為物流的進步以及無遠弗屆網路商城,現在不用出門也可以買到自己喜歡的東西

無論是生活上用的,還是個人運動類的產品

網路商城幾乎都可以買到~

尤其最近很常逛momo,真的是感覺非常方便啊

有一次買到瑕疵品,他們物流很快就收走,換新的給我真的很不錯

【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)是我在網路上閒逛時,猛然看到的產品

簡直讓我非常驚艷!

這類型的產品其實本來我就有在找,不過一直遇不到打折的好時機

現在終於等到了,而且廠商也正好有貨

不然等下次折扣,不知道等到什麼時候

所以我個人對【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)的評比如下

外觀質感:★★★★

使用爽感:★★★★☆

性能價格:★★★★☆

詳細介紹如下~參考一下吧

 

完整產品說明

 

【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)

沙灘戲水時的必備玩伴,在泳池裡玩也很有趣
重量輕盈,也可以在家中玩
除了是您戲水時的必備玩伴外,也可裝飾居家空間喔!
台灣製造通過國家商檢局檢驗合格
通過國家商檢局檢驗合格,檢驗碼M35542

 

注意事項
1.本產品僅供嬉戲使用,不做救生用途
2.兒童請在大人監護下使用
3.充氣請吹至8分飽即可,避免受擠壓後彈力空間變小
4.產品顏色會因網頁呈現而有些許差異,以收到實品為準
5.尺寸為手工測量,故差異1-3cm內屬正常範圍

品牌名稱

  •  

尺寸

  • 12.1吋~16吋

商品規格

  • 材質:PVC塑膠
    尺寸:16吋(約直徑26cm)
    重量:約56g
    適用對象:3歲以上
    檢驗碼:M35542
    產地:台灣

    材積:15*16*2cm
    重量:56g

 

非常推薦【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)給大家

↓↓↓【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)限量特惠的優惠按鈕↓↓↓

↓↓↓更多優質好物推薦↓↓↓

 

標籤註解:

PTT鄉民【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)限量,團購,限時,週年慶,禮物,優惠,【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)特價,開箱,比價,活動,好評,推薦

01網友【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)哪裡便宜,採購,優缺點,試用【WEKO】16吋西瓜造型沙灘球1入(WE-WM16),好用,CP值,經驗,好康,集購,下殺,免比價,去哪買?,

名人推薦【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)介紹,部落客,排行,【WEKO】16吋西瓜造型沙灘球1入(WE-WM16),體驗,精選,限定,折扣,折價卷

↓↓↓【WEKO】16吋西瓜造型沙灘球1入(WE-WM16)限量特惠的優惠按鈕↓↓↓

熱點新聞搶先報

 

1)實驗平臺:正點原子STM32mini開發板 2)摘自《正點原子STM32 不完全手冊(HAL 庫版)》關注官方微信號公眾號,獲取更多資料:正點原子 ... 第十七章 USMART 調試組件實驗 本章,我們將向大家介紹一個十分重要的輔助調試工具:USMART 調試組件。該組件由 ALIENTEK 開發提供,功能類似 linux 的 shell(RTT 的 finsh 也屬於此類)。USMART 最主要 的功能就是通過串口調用單片機裡面的函數,並執行,對我們調試代碼是很有幫助的。本章分 為如下幾個部分: 17.1 USMART 調試組件簡介 17.2 硬體設計 17.3 軟體設計 17.4 下載驗證 17.1 USMART 調試組件簡介 USMART 是由 ALIENTEK 開發的一個靈巧的串口調試互交組件,通過它你可以通過串口 助手調用程序裡面的任何函數,並執行。因此,你可以隨意更改函數的輸入參數(支持數字(10/16 進位)、字符串、函數入口地址等作為參數),單個函數最多支持 10 個輸入參數,並支持函數返 回值顯示,目前最新版本為 V3.1。 USMART 的特點如下: 1, 可以調用絕大部分用戶直接編寫的函數。 2, 資源占用極少(最少情況:FLASH:4K;SRAM:72B)。 3, 支持參數類型多(數字(包含 10/16 進位)、字符串、函數指針等)。 4, 支持函數返回值顯示。 5, 支持參數及返回值格式設置。 6, 支持函數執行時間計算(V3.1 版本新特性)。 7, 使用方便。 有了 USMART,你可以輕易的修改函數參數、查看函數運行結果,從而快速分析解決問題。 比如你調試一個攝像頭模塊,需要修改其中的幾個參數來得到最佳的效果,普通的做法:寫函 數→修改參數→下載→看結果→不滿意→修改參數→下載→看結果→不滿意….不停的循環,直 到滿意為止。這樣做很麻煩不說,單片機也是有壽命的啊,老這樣不停的刷,很折壽的。 如果利用 USMART,則只需要在串口調試助手裡面輸入函數及參數,然後直接串口發送給 單片機,就執行了一次參數調整,不滿意的話,你在串口調試助手修改參數在發送就可以了, 直到你滿意為止。這樣,修改參數十分方便,不需要編譯、不需要下載、不會讓單片機折壽。 USMART 支持的參數類型基本滿足任何調試了,支持的類型有:10 或者 16 進位數字、字 符串指針(如果該參數是用作參數返回的話,可能會有問題!)、函數指針等。因此絕大部分函 數,可以直接被 USMART 調用,對於不能直接調用的,你只需要重寫一個函數,把影響調用 的參數去掉即可,這個重寫後的函數,即可以被 USMART 調用了。 USMART 的實現流程簡單概括就是:第一步,添加需要調用的函數(在 usmart_config.c 里 面的 usmart_nametab 數組裡面添加);第二步,初始化串口;第三步,初始化 USMART(通過 usmart_init 函數實現);第四步,輪詢 usmart_scan 函數,處理串口數據。 經過以上簡單介紹,我們對 USMART 有了個大概了解,接下來我們來簡單介紹下 USMART 組件的移植。 USMART 組件總共包含 6 文件如圖 17.1.1 所示: ...圖 17.1.1 USMART 組件代碼 其中 redeme.txt 是一個說明文件,不參與編譯。其他五個文件,usmart.c 負責與外部互交等。 usmat_str.c 主要負責命令和參數解析。usmart_config.c 主要由用戶添加需要由 usmart 管理的函 數。 usmart.h 和 usmart_str.h 是兩個頭文件,其中 usmart.h 裡面含有幾個用戶配置宏定義,可以 用來配置 usmart 的功能及總參數長度(直接和 SRAM 占用掛鈎)、是否使能定時器掃描、是否使 用讀寫函數等。 USMART 的移植,只需要實現 5 個函數。其中 4 個函數都在 usmart.c 裡面,另外一個是串 口接收函數,必須由用戶自己實現,用於接收串口發送過來的數據。 第一個函數,串口接收函數。該函數,我們是通過 SYSTEM 文件夾默認的串口接收來實現 的,該函數在 5.3.1 節有介紹過,我們這裡就不列出來了。SYSTEM 文件夾裡面的串口接收函 數,最大可以一次接收 200 字節,用於從串口接收函數名和參數等。大家如果在其他平臺移植, 請參考 SYSTEM 文件夾串口接收的實現方式進行移植。 第二個是 void usmart_init(void)函數,該函數的實現代碼如下: //初始化串口控制器 //sysclk:系統時鐘(Mhz) void usmart_init(u8 sysclk) { #if USMART_ENTIMX_SCAN==1 Timer4_Init(1000,(u32)sysclk*100-1);//分頻,時鐘為 10K ,100ms 中斷一次 //注意,計數頻率必須為 10Khz,以和 runtime 的單位(0.1ms)同步. #endif usmart_dev.sptype=1; //十六進位顯示參數 } 該函數有一個參數 sysclk,就是用於定時器初始化。另外 USMART_ENTIMX_SCAN 是在 usmart.h 裡面定義的一個是否使能定時器中斷掃描的宏定義。如果為 1,就初始化定時器中斷, 並在中斷裡面調用 usmart_scan 函數。如果為 0,那麼需要用戶需要自行間隔一定時間(100ms 左右為宜)調用一次 usmart_scan 函數,以實現串口數據處理。注意:如果要使用函數執行時 間統計功能(指令:runtime 1),則必須設置 USMART_ENTIMX_SCAN 為 1。另外,為了讓 統計時間精確到 0.1ms,定時器的計數時鐘頻率必須設置為 10Khz,否則時間就不是 0.1ms 了。 第三和第四個函數僅用於服務 USMART 的函數執行時間統計功能(串口指令:runtime 1), 分別是:usmart_reset_runtime 和 usmart_get_runtime,這兩個函數代碼如下: //復位 runtime //需要根據所移植到的 MCU 的定時器參數進行修改 void usmart_reset_runtime(void) { __HAL_TIM_CLEAR_FLAG(&TIM4_Handler,TIM_FLAG_UPDATE); //清除中斷標誌位 __HAL_TIM_SET_AUTORELOAD(&TIM4_Handler,0XFFFF); //將重裝載值設置到最大 __HAL_TIM_SET_COUNTER(&TIM4_Handler,0); //清空定時器的 CNT usmart_dev.runtime=0; } //獲得 runtime 時間 //返回值:執行時間,單位:0.1ms,最大延時時間為定時器 CNT 值的 2 倍*0.1ms //需要根據所移植到的 MCU 的定時器參數進行修改 u32 usmart_get_runtime(void) { if(__HAL_TIM_GET_FLAG(&TIM4_Handler,TIM_FLAG_UPDATE)==SET) //在運行期間,產生了定時器溢出 { usmart_dev.runtime+=0XFFFF; } usmart_dev.runtime+=__HAL_TIM_GET_COUNTER(&TIM4_Handler); return usmart_dev.runtime; //返回計數值 } 這裡我們還是利用定時器 4 來做執行時間計算,usmart_reset_runtime 函數在每次 USMART 調用函數之前執行,清除計數器,然後在函數執行完之後,調用 usmart_get_runtime 獲取整個 函數的運行時間。由於 usmart 調用的函數,都是在中斷裡面執行的,所以我們不太方便再用定 時器的中斷功能來實現定時器溢出統計,因此,USMART 的函數執行時間統計功能,最多可以 統計定時器溢出 1 次的時間,對 STM32 來說,定時器是 16 位的,最大計數是 65535,而由於 我們定時器設置的是 0.1ms 一個計時周期(10Khz),所以最長計時時間是:65535*2*0.1ms=13.1 秒。也就是說,如果函數執行時間超過 13.1 秒,那麼計時將不準確。 最後一個是 usmart_scan 函數,該函數用於執行 usmart 掃描,該函數需要得到兩個參量, 第一個是從串口接收到的數組(USART_RX_BUF),第二個是串口接收狀態(USART_RX_STA)。 接收狀態包括接收到的數組大小,以及接收是否完成。該函數代碼如下: //usmart 掃描函數 //通過調用該函數,實現 usmart 的各個控制.該函數需要每隔一定時間被調用一次 //以及時執行從串口發過來的各個函數. //本函數可以在中斷裡面調用,從而實現自動管理. //非 ALIENTEK 開發板用戶,則 USART_RX_STA 和 USART_RX_BUF[]需要用戶自己實現 void usmart_scan(void) { u8 sta,len; if(USART_RX_STA&0x8000)//串口接收完成? { len=USART_RX_STA&0x3fff; //得到此次接收到的數據長度 USART_RX_BUF[len]=''; //在末尾加入結束符. sta=usmart_dev.cmd_rec(USART_RX_BUF);//得到函數各個信息 if(sta==0)usmart_dev.exe();//執行函數 else { len=usmart_sys_cmd_exe(USART_RX_BUF); if(len!=USMART_FUNCERR)sta=len; if(sta) { switch(sta) { case USMART_FUNCERR: printf("函數錯誤! "); break; case USMART_PARMERR: printf("參數錯誤! "); break; case USMART_PARMOVER: printf("參數太多! "); break; case USMART_NOFUNCFIND: printf("未找到匹配的函數! "); break; } } } USART_RX_STA=0;//狀態寄存器清空 } } 該函數的執行過程:先判斷串口接收是否完成(USART_RX_STA 的最高位是否為 1),如 果完成,則取得串口接收到的數據長度(USART_RX_STA 的低 14 位),並在末尾增加結束符, 再執行解析,解析完之後清空接收標記(USART_RX_STA 置零)。如果沒執行完成,則直接跳 過,不進行任何處理。 完成這幾個函數的移植,你就可以使用 USMART 了。不過,需要注意的是,usmart 同外 部的互交,一般是通過 usmart_dev 結構體實現,所以 usmart_init 和 usmart_scan 的調用分別是 通過:usmart_dev.init 和 usmart_dev.scan 實現的。 下面,我們將在第十六章實驗的基礎上,移植USMART,並通過USMART調用一些TFTLCD 的內部函數,讓大家初步了解 USMART 的使用。 17.2 硬體設計 本實驗用到的硬體資源有: 1) 指示燈 DS0 和 DS1 2) 串口 3) TFTLCD 模塊 這三個硬體在前面章節均有介紹,本章不再介紹。 17.3 軟體設計 打開上一章的工程,複製 USMART 文件夾到本工程文件夾下面,如圖 17.3.1 所示: ...圖 17.3.1 複製 USMART 文件夾到工程文件夾下 圖中的 keilkill.bat,是一個批處理文件,雙擊,可以刪除 MDK 編譯過程中產生的中間文件, 從而大大減少整個工程所占用的空間,節省硬碟空間,方便傳輸。 接著,我們打開工程,並新建 USMART 組,添加 USMART 組件代碼,同時把 USMART 文件夾添加到頭文件包含路徑,在主函數裡面加入 include「usmart.h」如圖 17.3.2 所示: ...圖 17.3.2 添加 USMART 組件代碼 由於 USMART 默認提供了 STM32 的 TIM4 中斷初始化設置代碼,我們只需要在 usmart.h 裡面設置 USMART_ENTIMX_SCAN 為 1,即可完成 TIM4 的設置,通過 TIM4 的中斷服務函 數,調用 usmart_dev.scan()(就是 usmart_scan 函數),實現 usmart 的掃描。此部分代碼我們就 不列出來了,請參考 usmart.c。 此時,我們就可以使用 USMART 了,不過在主程序裡面還得執行 usmart 的初始化,另外 還需要針對你自己想要被 USMART 調用的函數在 usmart_config.c 裡面進行添加。下面先介紹 如何添加自己想要被 USMART 調用的函數,打開 usmart_config.c,如圖 17.3.3 所示: ...圖 17.3.3 添加需要被 USMART 調用的函數 這裡的添加函數很簡單,只要把函數所在頭文件添加進來,並把函數名按上圖所示的方式 增加即可,默認我們添加了兩個函數:delay_ms 和 delay_us。另外,read_addr 和 write_addr 屬 於 usmart 自帶的函數,用於讀寫指定地址的數據,通過配置 USMART_USE_WRFUNS,可以 使能或者禁止這兩個函數。 這裡我們根據自己的需要按上圖的格式添加其他函數,添加完之後如圖 17.3.4 所示: ...圖 17.3.4 添加函數後 上圖中,我們添加了 lcd.h,並添加了很多 LCD 相關函數,注意,圖中左側有很多 MDK 動態語法檢測的警告標誌,我們不需要理會,這個編譯完全是沒有任何問題的。 最後我們還添加了 led_set 和 test_fun 兩個函數,這兩個函數在 test.c 裡面實現,代碼如下: //LED 狀態設置函數 void led_set(u8 sta) { LED1=sta; } //函數參數調用測試函數 void test_fun(void(*ledset)(u8),u8 sta) { ledset(sta); } led_set 函數,用於設置 LED1 的狀態,而第二個函數 test_fun 則是測試 USMART 對函數參 數的支持的,test_fun 的第一個參數是函數,在 USMART 裡面也是可以被調用的。 在添加完函數之後,我們修改 main 函數,如下: int main(void) { HAL_Init(); //初始化 HAL 庫 Stm32_Clock_Init(RCC_PLL_MUL9); //設置時鐘,72M delay_init(72); //初始化延時函數 uart_init(115200); //初始化串口 usmart_dev.init(84); //初始化 USMART LED_Init(); //初始化 LED LCD_Init(); POINT_COLOR=RED; //畫筆顏色:紅色 LCD_ShowString(30,50,200,16,16,"Mini STM32 ^_^"); LCD_ShowString(30,70,200,16,16,"USMART TEST"); LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(30,110,200,16,16,"2019/11/15"); while(1) { LED0=!LED0; delay_ms(500); } } 此代碼顯示簡單的信息後,就是在死循環等待串口數據。至此,整個 usmart 的移植就完成 了。編譯成功後,就可以下載程序到開發板,開始 USMART 的體驗。 17.4 下載驗證 將程序下載到 MiniSTM32 後,可以看到 DS0 不停的閃爍,提示程序已經在運行了。同時, 螢幕上顯示了一些字符(就是主函數裡面要顯示的字符)。 我們打開串口調試助手 XCOM,選擇正確的串口號→多條發送→勾選發送新行(即發送回 車鍵)選項,然後發送 list 指令,即可列印所有 usmart 可調用函數。如下圖所示: ...圖 17.4.1 驅動串口調試助手 上圖中 list、id、help、hex、dec 和 runtime 都屬於 usmart 自帶的系統命令,點擊後方的數 字按鈕,即可發送對應的指令。下面我們簡單介紹下這幾個命令: list,該命令用於列印所有 usmart 可調用函數。發送該命令後,串口將受到所有能被 usmart 調用得到函數,如圖 17.4.1 所示。 id,該指令用於獲取各個函數的入口地址。比如前面寫的 test_fun 函數,就有一個函數參數, 我們需要先通過 id 指令,獲取 ledset 函數的 id(即入口地址),然後將這個 id 作為函數參數, 傳遞給 test_fun。 help(或者『 ?』也可以),發送該指令後,串口將列印 usmart 使用的幫助信息。 hex 和 dec,這兩個指令可以帶參數,也可以不帶參數。當不帶參數的時候,hex 和 dec 分 別用於設置串口顯示數據格式為 16 進位/10 進位。當帶參數的時候,hex 和 dec 就執行進位轉 換,比如輸入:hex 1234,串口將列印:HEX:0X4D2,也就是將 1234 轉換為 16 進位列印出來。 又比如輸入:dec 0X1234,串口將列印:DEC:4660,就是將 0X1234 轉換為 10 進位列印出來。 runtime 指令,用於函數執行時間統計功能的開啟和關閉,發送:runtime 1,可以開啟函數 執行時間統計功能;發送:runtime 0,可以關閉函數執行時間統計功能。函數執行時間統計功 能,默認是關閉的。 大家可以親自體驗下這幾個系統指令,不過要注意,所有的指令都是大小寫敏感的,不要 寫錯哦。 接下來,我們將介紹如何調用 list 所列印的這些函數,先來看一個簡單的 delay_ms 的調用, 我們分別輸入 delay_ms(1000)和 delay_ms(0x3E8),如圖 17.4.2 所示: ...圖 17.4.2 串口調用 delay_ms 函數 從上圖可以看出,delay_ms(1000)和 delay_ms(0x3E8)的調用結果是一樣的,都是延時 1000ms,因為 usmart 默認設置的是 hex 顯示,所以看到串口列印的參數都是 16 進位格式的, 大家可以通過發送 dec 指令切換為十進位顯示。另外,由於 USMART 對調用函數的參數大小寫 不敏感,所以參數寫成:0X3E8 或者 0x3e8 都是正確的。另外,發送:runtime 1,開啟運行時 間統計功能,從測試結果看,USMART 的函數運行時間統計功能,是相當準確的。 我們再看另外一個函數,LCD_ShowString 函數,該函數用於顯示字符串,我們通過串口輸 入:LCD_ShowString(20,200,200,100,16,"This is a test for usmart!!"),如圖 17.4.3 所示: ...圖 17.4.3 串口調用 LCD_ShowString 函數 該函數用於在指定區域,顯示指定字符串,發送給開發板後,我們可以看到 LCD 在我們指 定的地方顯示了:This is a test for usmart!! 這個字符串。 其他函數的調用,也都是一樣的方法,這裡我們就不多介紹了,最後說一下帶有函數參數 的函數的調用。我們將 led_set 函數作為 test_fun 的參數,通過在 test_fun 裡面調用 led_set 函數, 實現對 DS1(LED1)的控制。前面說過,我們要調用帶有函數參數的函數,就必須先得到函數參 數的入口地址(id),通過輸入 id 指令,我們可以得到 led_set 的函數入口地址是:0X08005E89, 所以,我們在串口輸入:test_fun(0X08005E89,0),就可以控制 DS1 亮了。如圖 17.4.4 所示: ...圖 17.4.4 串口調用 test_fun 函數 在開發板上,我們可以看到,收到串口發送的 test_fun(0X08005E89,0)後,開發板的 DS1 亮了,然後大家可以通過發送 test_fun(0X08005E89,1),來關閉 DS1。說明我們成功的通過 test_fun 函數調用 led_set,實現了對 DS1 的控制。也就驗證了 USMART 對函數參數的支持。 USMART 調試組件的使用,就為大家介紹到這裡。USMART 是一個非常不錯的調試組件, 希望大家能學會使用,可以達到事半功倍的效果。

 

RF4545NNEEFE115R

 

 

文章來源取自於:

 

 

每日頭條 https://kknews.cc/code/jaopaee.html

MOMO購物網 https://www.momoshop.com.tw/goods/GoodsDetail.jsp?i_code=6403916&memid=6000007380&cid=apuad&oid=1&osm=league

如有侵權,請來信告知,我們會立刻下架。

DMCA:dmca(at)kubonews.com

聯絡我們:contact(at)kubonews.com


【購物台momo折扣優惠開箱評價】【momo熱銷榜上有名】【mom購物台折扣優惠開箱評價】【這產品好多人評價推薦】
【使用感想真心評價推薦】 【TATUNG 大同】11人份內蓋(C11093S)【momo優惠新會員好禮】 【美國Honeywell】抗敏系列空氣清淨機HPA-202APTW (抗敏必備雙入組)【www.momoshop.com.tw 富邦購物網折扣優惠開箱評價】 【SimLife】經典震動美體按摩機(抖抖機按摩帶)【momo優惠新會員好禮】 【SAKURA 櫻花】全省安裝 90公分深罩式雙效除油排油煙機 抽油煙機(R-3680SXL)

arrow
arrow
    全站熱搜

    網路推薦這款爆品 發表在 痞客邦 留言(0) 人氣()