RISC-V MCU開發教程之與Matlab的串列埠通訊
阿新 • • 發佈:2022-03-01
赤菟V307(CH32V307)是一款RISC-V核心的MCU,搭載的是沁恆自研RISC-V核心青稞V4F,最高主頻144MHz,支援單精度浮點運算(FPU)。
Matlab支援串列埠通訊,可以接收串列埠的資料,並進行資料處理,本文主要講解赤菟V307與Matlab的串列埠通訊,並進行快速傅立葉變換。
1、定義串列埠協議
為了更好的接收並處理串列埠資料,需要定製一定的傳輸協議:
- 每個資料以 ‘,’(ASCII:44)結束
- 整組資料以 ‘$’(ASCII:36) 結束
- 浮點統一放大到整數
2、赤菟V307端程式設計
赤菟V307傳送一段訊號,該訊號由幅度為0.4的直流訊號+幅度為0.5,頻率為50Hz的訊號+幅度為,頻率為100Hz的訊號+幅度為0.5,頻率為150Hz的訊號組成,取樣率為1000Hz,一共傳送1000個取樣值。
程式碼如下:
3、Matlab端程式設計
matlab支援串列埠接收資料,根據定義的協議,解析資料,支援正負整數。具體程式碼如下:
4、結果驗證
Matlab接收資料顯示如下:
經過Matlab的快速傅立葉變換結果如下:
打通了赤菟V307和Matlab之間的“任督二脈”,後面可以愉快的驗證赤菟V307的FFT以及相關的數字訊號處理演算法啦~~~~