DeepSeek是什么?
DeepSeek,一家以代碼編寫能力為核心競爭力的 AI 科技公司,致力于通過高性能 AI 模型賦能企業智能化轉型。公司擁有一支由頂尖程序員和 AI 專家組成的團隊,他們以卓越的代碼編寫能力,不斷優化和創新 AI 技術,為全球用戶提供高效、智能的解決方案。
DeepSeek 的 AI 模型以高效的代碼實現和強大的性能表現著稱,能夠在金融、醫療、教育等多個行業中發揮重要作用。其最新發布的大模型 R1,以極低的訓練成本達到了行業領先水平,彰顯了 DeepSeek 在代碼編寫和 AI 技術創新方面的強大實力。憑借卓越的代碼能力和創新的商業模式,DeepSeek 正逐步成為全球 AI 領域的佼佼者,為全球科技產業的發展貢獻力量。
之前還癡心妄想讓它幫我搭建二次開發環境,但是因為權限問題,DeepSeek 無法操作終端。
那就試試 DeepSeek 給 Ai-WB2 模組編程,能不能直接編譯運行呢?
在寫這帖子之前,做了好多測試,大部分時間浪費在了服務器繁忙這個問題上!

在開始讓 DeepSeek 生成之前,注意要提前搭建好 Ai-WB2 的二次開發環境和測試工程,生成的代碼才能直接復制。
提問技巧
AI 工具畢竟還不是人,所以在提問的時候,盡量提供要求和一些信息。比如使用那些庫,需要達到什么效果等。
如果回復較慢,可以試試 siliconflow:
鏈接:https://cloud.siliconflow.cn/models
GPIO 點燈
提問內容如下:

已經喜聞樂見了,接下來試試硅基流動的:

嘗試了兩次之后,至少生成了代碼,接下來完全不改動,復制測試一下:
#include#include #include #include // 包含硬件定時器頭文件 #include #include #define LED_PIN 3 // 定義GPIO3引腳 #define BLINK_INTERVAL 500 // 閃爍間隔500ms(周期1秒) void led_init(void) { /* 初始化GPIO時鐘 */ bl_gpio_enable_output(LED_PIN, 0, 0); // 配置GPIO3為輸出模式 /* 初始狀態設置為低電平(根據電路設計可能需要反轉) */ bl_gpio_output_set(LED_PIN, 0); } void led_blink_task(void *pvParameters) { while (1) { // 翻轉GPIO狀態 bl_gpio_output_set(LED_PIN, !bl_gpio_input_get(LED_PIN)); // 使用FreeRTOS延時函數 vTaskDelay(BLINK_INTERVAL / portTICK_PERIOD_MS); } } void main(void) { // 硬件初始化 led_init(); // 創建閃爍任務 xTaskCreate(led_blink_task, "led_task", 512, NULL, 15, NULL); // 啟動任務調度器 vTaskStartScheduler(); // 程序不會執行到這里 while(1) {} }
代碼測試

初步看著沒什么錯誤,編譯試試。
編譯提示出了錯誤,只能手動改一下了。
修改之后

運行成功的代碼
#include#include #include #include // 包含硬件定時器頭文件 #include #include #define LED_PIN 3 // 定義GPIO3引腳 #define BLINK_INTERVAL 500 // 閃爍間隔500ms(周期1秒) void led_init(void) { /* 初始化GPIO時鐘 */ bl_gpio_enable_output(LED_PIN, 0, 0); // 配置GPIO3為輸出模式 /* 初始狀態設置為低電平(根據電路設計可能需要反轉) */ bl_gpio_output_set(LED_PIN, 0); } void led_blink_task(void* pvParameters) { int cnt = 0; while (1) { // 翻轉GPIO狀態 bl_gpio_output_set(LED_PIN, cnt % 2); // 使用FreeRTOS延時函數 vTaskDelay(BLINK_INTERVAL / portTICK_PERIOD_MS); cnt++; if (cnt>10) { cnt = 0; } } } void main(void) { // 硬件初始化 led_init(); // 創建閃爍任務 xTaskCreate(led_blink_task, "led_task", 512, NULL, 15, NULL); // 啟動任務調度器 // vTaskStartScheduler(); // 程序不會執行到這里 while (1) {} }
測試結果

PWM 調色
開發板上自帶了 RGB,對應得 GPIO 如下:

好了開啟第二輪對話了,提問內容如下:

我已經麻木了!
嘗試幾次之后,給了回復:

提供的完整代碼
#include#include #include #include // PWM通道配置(根據實際GPIO-PWM映射關系調整) #define PWM_RED_CH 0 // GPIO14對應PWM通道0 #define PWM_GREEN_CH 1 // GPIO17對應PWM通道1 #define PWM_BLUE_CH 2 // GPIO3對應PWM通道2 // PWM頻率參數(假設系統時鐘144MHz) #define PWM_FREQ 15000 // 15kHz #define PWM_CLK_DIV 1 // 分頻系數 #define PWM_PERIOD (144000000 / PWM_CLK_DIV / PWM_FREQ) // 周期值計算 void pwm_init() { // 配置GPIO為PWM功能 bl_pwm_init(PWM_RED_CH, GPIO_PIN_14); bl_pwm_init(PWM_GREEN_CH, GPIO_PIN_17); bl_pwm_init(PWM_BLUE_CH, GPIO_PIN_3); // 統一設置PWM參數 for(int ch = 0; ch < 3; ch++) { bl_pwm_set_freq(ch, PWM_FREQ); bl_pwm_set_duty(ch, 0); // 初始占空比0% } bl_pwm_start(); } void breathing_effect(uint8_t ch, uint32_t duration_ms) { const uint32_t steps = 100; const uint32_t delay = duration_ms / (steps * 2); // 漸亮 for(int i = 0; i <= steps; i++) { bl_pwm_set_duty(ch, (PWM_PERIOD * i) / steps); vTaskDelay(delay / portTICK_PERIOD_MS); } // 漸暗 for(int i = steps; i >= 0; i--) { bl_pwm_set_duty(ch, (PWM_PERIOD * i) / steps); vTaskDelay(delay / portTICK_PERIOD_MS); } } void rgb_test_task(void *pvParameters) { while(1) { // 紅色呼吸 breathing_effect(PWM_RED_CH, 2000); // 綠色呼吸 breathing_effect(PWM_GREEN_CH, 2000); // 藍色呼吸 breathing_effect(PWM_BLUE_CH, 2000); // 白色混合呼吸 for(int i = 0; i <= 100; i++) { bl_pwm_set_duty(PWM_RED_CH, (PWM_PERIOD * i) / 100); bl_pwm_set_duty(PWM_GREEN_CH, (PWM_PERIOD * i) / 100); bl_pwm_set_duty(PWM_BLUE_CH, (PWM_PERIOD * i) / 100); vTaskDelay(20 / portTICK_PERIOD_MS); } for(int i = 100; i >= 0; i--) { bl_pwm_set_duty(PWM_RED_CH, (PWM_PERIOD * i) / 100); bl_pwm_set_duty(PWM_GREEN_CH, (PWM_PERIOD * i) / 100); bl_pwm_set_duty(PWM_BLUE_CH, (PWM_PERIOD * i) / 100); vTaskDelay(20 / portTICK_PERIOD_MS); } } } void main() { pwm_init(); xTaskCreate(rgb_test_task, "rgb_test", 512, NULL, 2, NULL); vTaskStartScheduler(); }
代碼測試

有三個錯誤,做一下修改就好,修改或如下:

編譯正常,通過了。
運行測試
最后測試失敗了,因為 PWM 通道全都沒有對應上 GPIO,所以需要把 PWM 通道號改回來,再測試:

燈顏色正確了,但是呼吸效果不對啊。
直接讓 DeepSeek 幫我們修改,提問如下:

根據意見,調節了 PWM 頻率和分頻系數,得到了非常不錯的呼吸效果。
完整程序
#include#include #include #include // PWM通道配置(根據實際GPIO-PWM映射關系調整) #define PWM_RED_CH 4 // GPIO14對應PWM通道0 #define PWM_GREEN_CH 2 // GPIO17對應PWM通道1 #define PWM_BLUE_CH 3 // GPIO3對應PWM通道2 // PWM頻率參數(假設系統時鐘144MHz) #define PWM_FREQ 15000 // 15kHz #define PWM_CLK_DIV 16 // 分頻系數 #define PWM_PERIOD (32000000 / PWM_CLK_DIV / PWM_FREQ) // 周期值計算 void pwm_init() { // 配置GPIO為PWM功能 bl_pwm_init(PWM_RED_CH, 14, PWM_FREQ); bl_pwm_init(PWM_GREEN_CH, 17, PWM_FREQ); bl_pwm_init(PWM_BLUE_CH, 3, PWM_FREQ); // 統一設置PWM參數 for (int ch = 0; ch < 3; ch++) { bl_pwm_set_freq(ch, PWM_FREQ); bl_pwm_set_duty(ch, 0); // 初始占空比0% } bl_pwm_start(PWM_RED_CH); bl_pwm_start(PWM_GREEN_CH); bl_pwm_start(PWM_BLUE_CH); } void breathing_effect(uint8_t ch, uint32_t duration_ms) { const uint32_t steps = 100; const uint32_t delay = duration_ms / (steps * 2); // 漸亮 for (int i = 0; i <= steps; i++) { bl_pwm_set_duty(ch, (PWM_PERIOD * i) / steps); vTaskDelay(delay / portTICK_PERIOD_MS); } // 漸暗 for (int i = steps; i >= 0; i--) { bl_pwm_set_duty(ch, (PWM_PERIOD * i) / steps); vTaskDelay(delay / portTICK_PERIOD_MS); } } void rgb_test_task(void* pvParameters) { while (1) { // 紅色呼吸 breathing_effect(PWM_RED_CH, 2000); // 綠色呼吸 breathing_effect(PWM_GREEN_CH, 2000); // 藍色呼吸 breathing_effect(PWM_BLUE_CH, 2000); // 白色混合呼吸 for (int i = 0; i <= 100; i++) { bl_pwm_set_duty(PWM_RED_CH, (PWM_PERIOD * i) / 100); bl_pwm_set_duty(PWM_GREEN_CH, (PWM_PERIOD * i) / 100); bl_pwm_set_duty(PWM_BLUE_CH, (PWM_PERIOD * i) / 100); vTaskDelay(20 / portTICK_PERIOD_MS); } for (int i = 100; i >= 0; i--) { bl_pwm_set_duty(PWM_RED_CH, (PWM_PERIOD * i) / 100); bl_pwm_set_duty(PWM_GREEN_CH, (PWM_PERIOD * i) / 100); bl_pwm_set_duty(PWM_BLUE_CH, (PWM_PERIOD * i) / 100); vTaskDelay(20 / portTICK_PERIOD_MS); } } } void main() { pwm_init(); xTaskCreate(rgb_test_task, "rgb_test", 512, NULL, 2, NULL); // vTaskStartScheduler(); }
測試結果

總結
1、官方的服務器還是不給力,一直服務器繁忙
2、生成的代碼有部分兼容性問題,達不到直接編譯使用要求
3、接口不可能完全可用
使用經驗
1、盡可能多的提供要求信息
2、需要結合自身編程經驗完善程序細節,以達到想要的功能
最后最后,希望 DeepSeek 盡快完善起來!過來人的服務器繁忙:

-
AI
+關注
關注
91文章
40469瀏覽量
302073 -
程序
+關注
關注
117文章
3846瀏覽量
85363 -
DeepSeek
+關注
關注
2文章
837瀏覽量
3344
原文標題:和大火的DeepSeek聊下Ai-WB2模組程序?它好會!
文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
探索LM83:一款功能強大的溫度傳感器
探索 RZ/V2L:嵌入式 AI 應用的強大之選
【WiFi+藍牙】智能門鎖、智能插座:用Ai-WB2系列,價格更低,性能更強
安信可Ai-WB2系列Wi-Fi+BLE模組的特點和應用
電子DIY 用Ai-WB2-12F模組做多功能無線彩燈控制器
STM32WB09KE評估板技術解析與應用指南
藍牙云屏:功能強大,性價比之選?
【Wi-Fi&BLE模組】Ai-WB2系列的固件燒錄指導
探索DeepSeek的Ai-WB2模組程序:功能強大
評論