2015年10月30日 星期五
2015年10月23日 星期五
nRF52832 BLE_App_Uart example code(IAR EWARM Version)
1. 本範例主要是參考Nordic原廠Keil MDK範例中的ble_app_uart project, 將其修改為IAR
EWARM的版本, 但在內容上有稍微修改一下, 之後在main.c流程介紹時, 再行說明.
2. 完整範例下載連結:
ble_app_uart_iar_version
3. 需先下載及安裝相關Tool等前置作業, 本範例才能正常執行:
4. main.c 流程簡介:
5. merge hex流程簡介:
6. 燒錄流程:
7. 測試流程:
8. 完整測試影片如下:
EWARM的版本, 但在內容上有稍微修改一下, 之後在main.c流程介紹時, 再行說明.
2. 完整範例下載連結:
ble_app_uart_iar_version
3. 需先下載及安裝相關Tool等前置作業, 本範例才能正常執行:
- 下載 S132 nRF52 SoftDevice, 主要原因是需要裡面的ble library hex, 否則程式無法正常執行.
- 下載完畢解壓縮後, 可以看到s132_nrf52_1.0.0-3.alpha_softdevice.hex在資料匣底下.
- 安裝nRF5x-Tools-Win32, 主要原因是需要裡面的mergehex.exe執行檔, 需要此檔案才能將ble library hex與我們自行產生出的hex打包在一起.
- 安裝完畢後, 可以在安裝目錄底下找到mergehex.exe.
- 在下載及安裝完畢後, 需要將s132_nrf52_1.0.0-3.alpha_softdevice.hex 和 mergehex.exe這兩個檔案複製到Projects/Template/EWARM/Debug/Exe底下去, 方便直接將我們自行build出來的hex一起打包.
4. main.c 流程簡介:
- 跟原先Keil MDK版本的範例相比, 有以下幾點差異:
- uart baud rate 提升到1000000.
- 取消uart flow control.(RTS/CTS).
- 原先範例是PC先透過uart傳送字元給nRF52832, 然後nRF52832再將收到的字元透過BLE傳送出去, 現在改為nRF52832固定每100msec透過BLE送出特定字串出去.
- 當程式編譯完成後, 在Projects/Template/EWARM/Debug/Exe底下會產生出nRF52832_Template.hex, 代表程式編譯正常, 那接下來就是進行merge hex的動作了.
5. merge hex流程簡介:
- 當我們完成上述步驟後, 在Projects/Template/EWARM/Debug/Exe底下應該會有如下圖的檔案, 若都有的話, 便可進行merge hex的步驟.
- 開啟命令提示字元, 且切換到Projects/Template/EWARM/Debug/Exe路徑底下.
- 輸入: mergehex.exe -h , 便可以得知mergehex.exe的使用方法.
- 由於我們是要將ble library hex 以及IAR Project產生的hex merge 在一起, 因此我們輸入以下的語法: (bt_uart.hex代表的是merge完成後的檔案)
mergehex.exe -m s132_nrf52_1.0.0-3.alpha_softdevice.hex nRF52832_Template.hex -o bt_uart.hex
- merge成功時, 會出現以下訊息, 且Projects/Template/EWARM/Debug/Exe目錄底下會出現bt_uart.hex.
- 至此merge流程已全部結束, 接下來將把bt_uart.hex燒錄至nRF52832內並進行BLE測試.
6. 燒錄流程:
- 將nRF52832使用USB Cable與PC連線, 此時會出現JLINK Disk.
- 開啟資料夾.
- 將merge完成的bt_uart.hex檔案複製到JLINK Disk, 複製完成後, nRF52832會自動進行燒錄並重啟.
- 此時應該會看到LED1以間隔1秒左右的速度在閃爍, 表示BLE程式正在等待連線, 代表燒錄流程執行成功.
7. 測試流程:
- 在手機上安裝nRF UART v2.0(android) or nRF UART(iOS).
- 接下來使用nRF UART v2.0當作範例測試, 開啟app後, 選擇Connect.
- 此時選擇Nordic_UART.
- 連線成功後, 便可以看到main.c中我們所定義的格式輸出, 且LED1停止閃爍.
sprintf(PrintBuffer, "Hello,Nordic,%d\r\n", counter++);
- 若再按下Disconnect, 則停止傳送資料, LED1開始恢復閃爍.
8. 完整測試影片如下:
2015年10月22日 星期四
PHILIPS 19DP6QJNS 極簡開箱
1. 工作上長久以來都是用NB+外接螢幕來進行Coding, 但由於年紀的增長, 面對筆電的螢幕, 眼
睛越來越不能夠長時間的注視.
2. 在PChome上剛好看到特價, 從15888 下殺到 9988, 因此就決定下標了.
3. 盒子超大一箱的, 都超過我的桌子了.
4. 架設好之後, 真的蠻方便的, 可以一邊寫程式, 一邊用Google查資料, 不用像以前一樣, 頭一直
左右來回地看螢幕.
5. 可以一邊發廢文, 一邊查Datasheet了......XD
2016-03-08補照片(可以點圖看原始檔案)
1. 兩邊螢幕皆設定亮度為100.
2. 單邊螢幕來一張(亮度為100)
3. 兩邊螢幕亮度比較(左邊亮度為100, 右邊亮度為0)
4. 非常多人在問的一個問題, 是否可以把兩個螢幕合併為一個, 若你的電腦顯卡支援拼貼的話, 就
可以合併為一個螢幕.
5. 以下是合併螢幕的一些應用照片.
win10開機畫面
看股票.....XD
寫Code
看YouTube影片測試
2015年10月19日 星期一
How To Enable CMSIS-DSP On STM32F4
1. 在IAR官網上有看到介紹CMSIS-DSP的內容, 本文主要是根據其內容進行測試的sample code.
硬體上是使用STM32F401 Discovery Board + Logic Analyzer
2. IAR官網的CMSIS-DSP連結如下:
IAR CMSIS-DSP Link
3. CMSIS-DSP Library Enable Flow:
4.main.c程式流程及量測方法:
5. 完整測試範例下載連結如下:
STM32F401-DiscoveryBoard-CMSIS-DSP-Example
硬體上是使用STM32F401 Discovery Board + Logic Analyzer
IAR CMSIS-DSP Link
3. CMSIS-DSP Library Enable Flow:
- Copy CMSIS folder into your project.
- Set the CMSIS-DSP Library option in the General Option->Library Configuration page.
- Define the appropriate Preprocessor MACRO depending on the target processor in the application.
- ARM_MATH_CM4
- ARM_MATH_MATRIX_CHECK
- ARM_MATH_ROUNDING
- __FPU_PRESENT
- __FPU_USED
- 在需要使用到CMSIS-DSP Library的程式裡面需要include <arm_math.h>
- 從範例程式中可以看到主要是比較有無使用CMSIS-DSP Lib在做square function的時間差異
- 本範例是利用GPIOD13搭配Logic Analyzer來量測兩者的時間差異
- 從Logic Analyzer的波形上可以看到:
- 使用CMSIS-DSP Library的sqrt function的執行時間為0.5usec.
- 不使用CMSIS-DSP Library, 使用內建math.h的執行時間為8usec(A1-A2).
- 兩者之間的時間差異倍數: 8usec/0.5usec = 16.
STM32F401-DiscoveryBoard-CMSIS-DSP-Example
2015年10月14日 星期三
nRF52832 + FreeRTOS v8.2.2 + LED Toggle example (Keil MDK Version)
1. 總共創建4個Task.
2. 每個Task分別去Toggle不同的LED.
3. 測試用的Keil MDK版本為v5.16a.
4. 程式的開啟位置為\Nrf52832_KeilMDK_FreeRTOS_v8.2.2_LED_Toggle\examples\peripheral\blinky\pca10036\blank\arm5_no_packs\blinky_blank_pca10036.uvprojx
5. 測試影片如下:
6. 完整範例下載連結:
Nrf52832_KeilMDK_FreeRTOS_v8.2.2_LED_Toggle
2. 每個Task分別去Toggle不同的LED.
3. 測試用的Keil MDK版本為v5.16a.
4. 程式的開啟位置為\Nrf52832_KeilMDK_FreeRTOS_v8.2.2_LED_Toggle\examples\peripheral\blinky\pca10036\blank\arm5_no_packs\blinky_blank_pca10036.uvprojx
5. 測試影片如下:
6. 完整範例下載連結:
Nrf52832_KeilMDK_FreeRTOS_v8.2.2_LED_Toggle
如何在STM32F407 Discovery Kit上移植FreeRTOS
1. 移植步驟可以參考 如何在STM32F429 Discovery Kit上移植FreeRTOS.
2. 總共創建4個Task, 並分別Toggle 4個LED.
3. 測試影片如下:
4. 完整範例下載連結:
STM32F407-Discovery-RTOS_v8.0.1
2. 總共創建4個Task, 並分別Toggle 4個LED.
3. 測試影片如下:
4. 完整範例下載連結:
STM32F407-Discovery-RTOS_v8.0.1
2015年10月13日 星期二
nRF52832 LED blinky example (IAR EWARM Version)
1. 根據Nordic提供的Keil MDK版本的example code (nRF52_SDK_0.9.1_3639cc9) 當作基礎, 創 建一個新的IAR Project移植LED blinky example.
2. 在使用IAR之前, 需先安裝Nordic原廠提供的nRF5x-MDK-IAR Patch, 否則IAR無法認到
nRF52832這顆MCU.
Patch請至底下連結下載:
nRF5x-MDK-IAR-Patch
3. 完整範例請使用底下連結下載:
nRF52832_IAR_LED_Toggle
2. 在使用IAR之前, 需先安裝Nordic原廠提供的nRF5x-MDK-IAR Patch, 否則IAR無法認到
nRF52832這顆MCU.
Patch請至底下連結下載:
nRF5x-MDK-IAR-Patch
3. 完整範例請使用底下連結下載:
nRF52832_IAR_LED_Toggle
訂閱:
文章 (Atom)