找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5389|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

邊干邊學(xué)CH32V103單片機-從“點亮LED開始認(rèn)識CH32V103單片機

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:678336 發(fā)表于 2022-4-9 19:32 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
南京沁恒出品的CH32V103系列單片機,采用完全開源的RISC-V架構(gòu),對標(biāo)STM32F103系列單片機。本人出于對純國產(chǎn)32位單片機的好奇,開始學(xué)習(xí)這款單片機。
學(xué)習(xí)單片機的最好方法就是邊干邊學(xué)。經(jīng)過仔細(xì)閱讀沁恒公司網(wǎng)站的信息,選擇沁恒廠家出品的CH32V103R8T6核心板和WCH-Link下載器套餐作為硬件平臺,以及MounRiver作為集成開發(fā)環(huán)境,開始了學(xué)習(xí)旅程。
學(xué)習(xí)軟件編程都是以”Hello World !”開始,學(xué)習(xí)單片機則都是從“點亮LED”開始,本人也不能免俗。將核心板與WCH-Link用杜邦線連接,再插入筆記本電腦的USB口。打開MounRiver,在自己習(xí)慣的位置新建一個P-001工程項目,參考廠家提供的GPIO例程,按照以下代碼修改User子目錄下的main.c文件,
/*
*@Note
    使用沁恒CH32V103R8T6核心板,板上排針連接為PA0接LED1或LED2
    通用MUC第一個實例,“點亮LED”
*/

#include "debug.h"

int main(void)
{
    u8 i=0; //端口變量,0-低電位,1-高電位。調(diào)用GPIO_WriteBit()函數(shù)時才能作用于PA0端口

    Delay_Init(); //初始化延時函數(shù)

    GPIO_InitTypeDef GPIO_InitStructure = {0}; //聲明GPIO結(jié)構(gòu)體定義
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端口時鐘
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //配置PA0、PA1端口
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度
    GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA端口,PA0、PA1上電后自動為低電位,LED點亮

    while(1)
    {
        Delay_Ms(500); //延時0.5秒
        (i == 0) ? (i = Bit_SET) : (i = Bit_RESET); //取反語句,即將變量i的布爾值取反
        GPIO_WriteBit(GPIOA, GPIO_Pin_0, i); //LED間隔0.5秒閃爍

    }
}
保存好修改結(jié)果,選擇項目菜單下全部構(gòu)建,順利通過后選擇閃存菜單下的下載,即可將編譯好的P-001.hex文件下載到核心板。
將核心板上的PA0排針與LED1排針用杜邦線連接,即可看到板載的LED1閃爍。結(jié)合裴曉芳主編的《RISC-V架構(gòu)嵌入式原理與應(yīng)用——CH32V103單片機編程與項目實踐》一書,可以了解GIPO的設(shè)置和簡單應(yīng)用。
在上述代碼中,多設(shè)置了IO口PA1,主要目的是展示設(shè)置多個IO口的方法,實際運行結(jié)果是LED1接PA1時會長亮而不閃爍。如果沒有設(shè)置PA1,連接LED時不會亮,說明PA1未被激活生效。

在實際應(yīng)用項目中使用GPIO時需要注意以下問題,
1、在推挽輸出模式下,每個IO口最大拉電流和灌電流不應(yīng)超過20mA,直接驅(qū)動LED或光耦時,通?刂圃1.5~3mA左右。如果需要控制大功率外設(shè),可以通過IO口控制MOS管的柵極電壓,再控制外設(shè)。
2、單片機芯片的最大工作電流不應(yīng)超過50mA,多個IO口控制外設(shè)時,一定要注意芯片的最大工作電流。

  程序代碼都在附件中,就不注水了。

MounRiver Studio代碼51hei附件下載: P-001.rar (553.75 KB, 下載次數(shù): 17)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

10#
ID:702600 發(fā)表于 2024-4-21 09:34 | 只看該作者
開發(fā)環(huán)境用的是什么?沁恒自己的嗎?
回復(fù)

使用道具 舉報

9#
ID:87631 發(fā)表于 2022-10-13 11:16 | 只看該作者
fqc168 發(fā)表于 2022-8-22 10:16
這個芯片有什么優(yōu)勢???穩(wěn)定性如何

批量時有的芯片SWD無法下載,其他穩(wěn)定,沒有什么問題,廠家提供的例程編寫風(fēng)格與STM32的基本一致
回復(fù)

使用道具 舉報

8#
ID:620337 發(fā)表于 2022-9-21 09:27 | 只看該作者
目前發(fā)現(xiàn)這個芯片的功能還是比較原始,很多功能不完善,相當(dāng)于一個很原始的單片機
回復(fù)

使用道具 舉報

7#
ID:620337 發(fā)表于 2022-8-22 10:16 | 只看該作者
這個芯片有什么優(yōu)勢???穩(wěn)定性如何
回復(fù)

使用道具 舉報

6#
ID:1042195 發(fā)表于 2022-8-16 10:54 | 只看該作者
csgtli 發(fā)表于 2022-6-22 12:40
接觸過STM32的很容易就上手,這個單片機在一般應(yīng)用場合完全可低替STM32B .我現(xiàn)在的全部產(chǎn)品都改成了WCH的了

正在找這方面的資料,感謝
回復(fù)

使用道具 舉報

5#
ID:87631 發(fā)表于 2022-6-22 12:40 | 只看該作者
接觸過STM32的很容易就上手,這個單片機在一般應(yīng)用場合完全可低替STM32B .我現(xiàn)在的全部產(chǎn)品都改成了WCH的了
回復(fù)

使用道具 舉報

地板
ID:709912 發(fā)表于 2022-5-13 10:40 | 只看該作者
wukouyyq 發(fā)表于 2022-4-15 14:04
還沒有學(xué)過這種的單片機,只在學(xué)STC52RC。接下來想學(xué)這種的單片機了。

弱弱地問一句,GPIO_InitStructur ...

這個是指單片機管腳的響應(yīng)速度,需要控制LED閃爍的時候用Delay_Ms()就好了
回復(fù)

使用道具 舉報

板凳
ID:886836 發(fā)表于 2022-5-8 11:11 | 只看該作者
人眼的極限大概也就30Hz,,,,,膠片電影的幀速
回復(fù)

使用道具 舉報

沙發(fā)
ID:161362 發(fā)表于 2022-4-17 21:47 | 只看該作者
50M你覺得能看到嗎?人眼的極限大概也就50Hz
回復(fù)

使用道具 舉報

樓主
ID:1017814 發(fā)表于 2022-4-15 14:04 | 只看該作者
還沒有學(xué)過這種的單片機,只在學(xué)STC52RC。接下來想學(xué)這種的單片機了。

弱弱地問一句,GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度

這個是IO口的速度,50MHZ,這么快能看到LED燈閃嗎?

我不懂,還沒學(xué)過,不要見怪呀
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表