色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于CH32V103系列MCU點亮LED

CHANBAEK ? 來源:CSDN-借過風景 ? 作者:CSDN-借過風景 ? 2023-01-31 12:01 ? 次閱讀

簡介

CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設計。 片上集成了時鐘安全機制、多級電源管理、通用DMA控制器。 此系列具有1路USB2.0主機/設備接口、多通道12位ADC轉換模塊、多通道TouchKey、多組定時器、多路IIC/USART/SPI接口等豐富的外設資源。

本章通過點亮LED作為CH32V103系列MCU應用開發的第一個教程,其LED燈控制使用到GPIO外設的基本輸出功能,本章將通過點亮LED對CH32V103的GPIO進行基本的學習了解。

1、GPIO簡介及其庫函數介紹

GPIO,全稱為通用輸入輸出端口,其可與外部設備連接實現MCU與外部設備的通訊、控制、信號采集等功能。 本教程即通過CH32V103的GPIO與LED連接,實現MCU對LED的輸出控制。 關于CH32V103 GPIO的具體介紹,可參考CH32V103應用手冊和數據手冊。

進行LED點亮程序編寫之前,需對GPIO固件庫進行了解。 GPIO相關的函數和定義分布在固件庫文件ch32v10x_gpio.c和頭文件ch32v10x_gpio.h文件中,LED點亮程序需要調用GPIO固件庫文件中某些函數,GPIO庫函數相關函數如下:

pYYBAGPYkQWAFsB5AACRyIPKIbs216.png

1.1、無效GPIO_DeInit(GPIO_TypeDef* GPIOx)

功 能:將GPIOx外圍寄存器初始化為其默認重置值。

參 數:GPIOx用來選擇GPIO外設,取值可為GPIOA-GPIOG。

1.2、無效GPIO_AFIODeInit(無效)

功 能:將復用功能(重映射,事件控制與EXTI設置)重設為默認值。 通俗理解可認為此函數功能為初始化所有的復用功能。

參 數:無。

1.3、無效GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

功 能: GPIO初始化函數,根據GPIO_InitStructure中的指定參數初始化GPIO外設寄存器。

參 數:GPIOx用來選擇GPIO外設,取值可為GPIOA-GPIOG;GPIO_InitStructure為GPIO_InitTypedef類型結構體指針,指向包含GPIO外設配置信息的GPIO_InitTypedef結構體。

1.4、void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)

功 能:初始化結構體成員,即用其默認值填充每個GPIO_StructInit成員,包括GPIO_Pin、GPIO_Speed、GPIO_Mode等。

參 數:GPIO_StructInit為指向結構體GPIO_InitTypedef的指針,待初始化。

1.5、uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

功 能:讀取指定端口管腳的輸入(0或1)。

參 數:GPIOx用來選擇GPIO外設,取值可為GPIOA-GPIOG;GPIO_Pin用來選擇待讀取的端口位。

1.6、uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)

功 能:讀取指定的GPIO輸入數據端口。

參 數:無。

1.7、uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

功 能:讀取指定端口管腳的輸出(0或1)。

參 數:GPIOx用來選擇GPIO外設,取值可為GPIOA-GPIOG;GPIO_Pin用來選擇待讀取的端口位。

1.8、uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)

功 能:讀取指定的GPIO輸出數據端口。

參 數:無。

1.9、void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

功 能:設置指定的數據端口位,可理解為將指定的引腳設置為高電平。

參 數:GPIOx用來選擇GPIO外設,取值可為GPIOA-GPIOG;GPIO_Pin用來選擇待設置的端口位。

1.10、void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

功 能:清除指定的數據端口位,可理解為將指定的引腳設置為低電平。

參 數:GPIOx用來選擇GPIO外設,取值可為GPIOA-GPIOG;GPIO_Pin用來選擇待設置的端口位。

1.11、void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)

功 能:設置或清除指定的數據端口位,可理解為將指定的引腳設置為高電平或低電平。

參 數:GPIOx用來選擇GPIO外設,取值可為GPIOA-GPIOG;GPIO_Pin用來選擇待設置的端口位;BitVal為指定待寫入的值,該參數必須取枚舉BitAction的其中一個值。

1.12、void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)

功 能:向指定的GPIO端口寫入數據

參 數:GPIOx用來選擇GPIO外設,取值可為GPIOA-GPIOG;PortVal為待寫入端口數據寄存器(ODR寄存器)的值。

1.13、void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

功 能:鎖定GPIO管腳配置寄存器。

參 數:GPIOx用來選擇GPIO外設,取值可為GPIOA-GPIOG;,GPIO_Pin為待鎖定的端口位。

1.14、void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)

功 能:選擇GPIO管腳用作事件輸出

參 數:GPIO_PortSource為選擇用作事件輸出的GPIO端口;GPIO_PinSource為事件輸出的管腳。

1.15、無效GPIO_EventOutputCmd(功能狀態新狀態)

功 能:使能或失能事件輸出

參 數:NewState為管腳重映射的新狀態,該參數可以取ENABLE或DISABLE。

1.16、無效GPIO_PinRemapConfig(uint32_t GPIO_Remap,功能狀態新狀態)

功 能:更改指定管腳的映射。

參 數:GPIO_Remap為選擇重映射的管腳; NewState為管腳重映射的新狀態,該參數可以取ENABLE或DISABLE。

1.17、無效GPIO_EXTILineConfig(uint8_t GPIO_PortSource、uint8_t GPIO_PinSource)

功 能:選擇GPIO管腳用作外部中斷線路。

參 數:GPIO_PortSource為選擇用作外部中斷線源的GPIO端口; GPIO_PinSource為待設置的外部中斷線路。

2、硬件設計

由于本次教程為點亮LED,需用到LED。 開發板上帶有兩個LED燈(LED1和LED2),用兩根杜邦線分別將LED1和LED2與對應GPIO引腳連接起來,此處連接方式為:

LED1與PA0連接;

LED2與PA1連接。

3、軟件設計

LED點亮程序通過控制CH32V103 GPIO引腳的電平高低實現LED閃爍,其實現步驟如下:

定義一個GPIO_InitTypeDef類型結構體,結構體成員包括GPIO_Pin、GPIO_Mode、GPIO_Speed;

使能GPIO時鐘,否則GPIO引腳不工作,本次實驗使能GPIOA時鐘;

配置GPIO_InitTypeDef類型結構體成員參數,及配置GPIO引腳為對應引腳、GPIO模式為推挽輸出、GPIO口輸出速度為相應值;

調用庫函數,初始化GPIO;

調用庫函數,設置GPIO引腳輸出電平。

LED點亮程序如下:

pYYBAGPYkQWAY5RNAAAaWBCas2Y354.png

pYYBAGPYkQWAOoegAAB7a2q2wLI961.png

完成led.c和led.h之后,對其進行編譯保存,繼續對main函數進行編寫,main函數具體代碼如下:

main.c文件

pYYBAGPYkZiANeieAADAmSHcqxU331.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19396

    瀏覽量

    230716
  • led
    led
    +關注

    關注

    242

    文章

    23339

    瀏覽量

    662266
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17307

    瀏覽量

    352179
  • GPIO
    +關注

    關注

    16

    文章

    1216

    瀏覽量

    52267
  • RISC-V
    +關注

    關注

    45

    文章

    2317

    瀏覽量

    46353
  • ch32
    +關注

    關注

    0

    文章

    73

    瀏覽量

    669
收藏 人收藏

    評論

    相關推薦

    基于CH32V103系列MCU的ADC采樣設計

    CH32V103系列是以青稞V3A處理器為核心的32位通用RISC-V MCU,該處理器是基于RISC-
    的頭像 發表于 01-31 14:21 ?4270次閱讀
    基于<b class='flag-5'>CH32V103</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的ADC采樣設計

    【RTT大賽作品連載】CH32V103 USBHID鍵盤鼠標

    基于CH32V103實現了USB HID的鍵盤鼠標功能,提供寫好的代碼文件,歡迎fork。
    的頭像 發表于 11-29 08:49 ?8040次閱讀

    CH32V103數據手冊

    教程基于沁恒32位通用增強型RISC-V架構MCU CH32V103,力爭全面分析CH32V103的每個外設功能及使用方法,手把手教大家玩轉RISC-
    發表于 07-19 07:55

    系列比如103系列,CH32V103系列CH32F103有哪些區別?

    系列比如103系列,CH32V103系列CH32F103有哪些區別?
    發表于 03-09 10:05

    CH32V103基礎教程1-新建工程

    在進行CH32V103相關外設應用學習之前,我們首先使用MounRiver Studio新建一個工程,以GPIO教程(點亮LED)為例,具體操作步驟如下:第一步:創建LED工程。打開
    發表于 04-13 15:44

    CH32V103基礎教程2-GPIO庫函數介紹

    本章通過點亮LED作為CH32V103系列MCU應用開發的第一個教程,其LED燈控制使用到GPI
    發表于 04-13 15:52

    CH32V103基礎教程77-USART-指令控制LED

    ,在此不再贅述。 2、硬件設計由CH32V103系列MCU的串口1在調試文件中被用于調試打印,因此本次教程使用串口2進行收發驗證。由CH32V103數據手冊可知,串口2對應引腳為PA2
    發表于 05-08 15:55

    CH32V103基礎教程78-USART-空閑中斷

    ,在此不再贅述。 2、硬件設計由于CH32V103系列MCU的串口1在debug文件中被用于調試打印,因此本次教程使用串口2進行收發驗證。由CH32V103數據手冊可知,串口2對應引腳
    發表于 05-08 15:57

    RISC-V MCU應用開發教程之CH32V103

    教程基于沁恒32位通用增強型RISC-V架構MCU CH32V103,力爭全面分析CH32V103的每個外設功能及使用方法,手把手教大家玩轉RISC-
    發表于 11-18 16:21 ?18次下載
    RISC-<b class='flag-5'>V</b> <b class='flag-5'>MCU</b>應用開發教程之<b class='flag-5'>CH32V103</b>

    通過CH32V103定時器中斷控制LED燈閃爍

    CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設計。 片上集成了時鐘安全機制、多級電
    的頭像 發表于 01-31 14:24 ?3399次閱讀
    通過<b class='flag-5'>CH32V103</b>定時器中斷控制<b class='flag-5'>LED</b>燈閃爍

    基于CH32V103系列MCU的觸摸按鍵檢測

    CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設計。片上集成了時鐘安全機制、多級電源
    的頭像 發表于 01-31 14:53 ?4352次閱讀
    基于<b class='flag-5'>CH32V103</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的觸摸按鍵檢測

    CH32V103系列MCU內部FLASH讀寫操作方式

    CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設計。片上集成了時鐘安全機制、多級電源
    的頭像 發表于 01-31 15:02 ?4554次閱讀
    <b class='flag-5'>CH32V103</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>內部FLASH讀寫操作方式

    ch32v103應用教程 ch32v103c8t6兼容 ch32v103c8t6燒錄器

    的應用教程以及燒錄器、編程器的介紹。 一、CH32V103應用教程 1.硬件連接 首先,我們需要準備好CH32V103的開發板和一些外圍設備,如LED燈、按鍵
    的頭像 發表于 08-22 15:19 ?2061次閱讀

    ch32v103和stm32的區別

    和stm32。雖然它們共同作為微處理器的代表,但是它們之間還是有很多不同的。下面就詳細地對這兩種芯片進行比較和解析。 1、基本介紹 CH32V103是一款以ARM結構為基礎,具有射頻控制功能,能提供所有常規的數字接口的單片機芯片。其中包含有多種與ARM控制器及AC55XX系列
    的頭像 發表于 08-22 15:48 ?1567次閱讀

    ch32v103與stm32f103的區別

    ch32v103與stm32f103的區別? Ch32v103與STM32f103是兩種不同的芯片,雖然它們都是基于ARM Cortex-M3內核的32位微控制器,但它們在硬件配置、功
    的頭像 發表于 08-22 15:49 ?2618次閱讀
    主站蜘蛛池模板: 亚洲精品白色在线发布| 中文字幕无码A片久久| 最近日本MV字幕免费观看在线 | 琪琪婷婷五月色综合久久| 四虎影院网红美女| 在线免费观看国产| 久久re这里视频精品15| 亚洲国产高清福利视频| 国产在线精品视亚洲不卡| 小莹的性荡生活| 国内精品九九视频| 一个人免费播放高清在线观看 | 黄色三级视频网站| 亚洲视频一区在线| 国产精品成人影院| 午夜在线观看免费完整直播网页| 国产精品嫩草影院在线观看免费 | 久久久久嫩草影院精品| 自拍区偷拍亚洲视频| 美女脱了内裤张开腿让男人爽 | 99精品国产电影| 暖暖 免费 高清 日本在线| 白白操在线视频| 婷婷综合久久狠狠色| 果冻传媒在线观看完整版免费 | 亚洲欧美综合中文| 久久免费精品一区二区| 亚洲AV无码A片在线观看蜜桃| 国产特级毛片AAAAAAA高清| 亚洲日韩欧美国产中文在线| 老师你奶真大下面水真多| xxxxx俄罗斯| 亚洲高清国产拍精品动图| 久久精品综合网中文字幕| gratis videos欧美最新| 日韩综合网| 护士日本xx厕所| 9999精品视频| 无码国产成人777爽死在线观看| 精品久久久久久综合网| a在线观看视频|