国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32F103C8T6 點亮LED燈

這篇具有很好參考價值的文章主要介紹了STM32F103C8T6 點亮LED燈。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

文章目錄

  • 一、開發(fā)板介紹
  • 二、程序?qū)崿F(xiàn)
  • 1.配置函數(shù)
  • 2.程序源碼
  • main.c
  • LED.c
  • LED.h
  • 總結(jié)???????

前言

? ? ? ? 今天我們開始來學(xué)習(xí)一下STM32F103Z8T6 點燈。這塊芯片可用的IO口資源十分豐富,可用的通用IO口為32個(注意:是在使用ST_LINK 和 J_LINK的情況下)。這塊芯片的操作方法與正點原子的stm32開發(fā)板的操作方法大致相同,但是在應(yīng)用和價格層面上,還這款的芯片的單片機更香,平時做一些小型項目是綽綽有余的。


一、開發(fā)板介紹

STM32F103C8T6 點亮LED燈

STM32F103C8T6 點亮LED燈

????????我這里采用的開發(fā)板是這一款,其實開發(fā)板功能都大致相同的。該款開發(fā)板有5V 和 3.3V的供電IO口,支持USART、ST_LINK、J_LINK下載程序。

????????這里開發(fā)板上的兩個LED,只有LED2可以控制,因為這里的LED作為開發(fā)板的電源指示燈。

二、程序?qū)崿F(xiàn)

1.配置函數(shù)

? ? ? ? 我們要了解這里的控制LED燈,就是通過改變LED燈連接的IO口的輸出電平,從而來達到讓LED燈 亮/滅的狀態(tài),這里我們就要了解如何配置IO口。

????????void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);? ? ? ? // I/O口初始化

typedef struct
{????????????????
? uint16_t? ? GPIO_Pin;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //? 要使用IO口 管腳號

? GPIOSpeed_TypeDef? ?GPIO_Speed;? ? ? ? ? ? ? ? ? ? //? IO口 的傳輸速度

? GPIOMode_TypeDef? ? GPIO_Mode;? ? ? ? ? ? ? ? ? ? ? //? IO口 的模式? ? ? ? ?
}GPIO_InitTypeDef;



// GPIO_Pin:IO口 管腳號
#define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
#define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
#define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
#define GPIO_Pin_3                 ((uint16_t)0x0008)  /*!< Pin 3 selected */
#define GPIO_Pin_4                 ((uint16_t)0x0010)  /*!< Pin 4 selected */
#define GPIO_Pin_5                 ((uint16_t)0x0020)  /*!< Pin 5 selected */
#define GPIO_Pin_6                 ((uint16_t)0x0040)  /*!< Pin 6 selected */
#define GPIO_Pin_7                 ((uint16_t)0x0080)  /*!< Pin 7 selected */
#define GPIO_Pin_8                 ((uint16_t)0x0100)  /*!< Pin 8 selected */
#define GPIO_Pin_9                 ((uint16_t)0x0200)  /*!< Pin 9 selected */
#define GPIO_Pin_10                ((uint16_t)0x0400)  /*!< Pin 10 selected */
#define GPIO_Pin_11                ((uint16_t)0x0800)  /*!< Pin 11 selected */
#define GPIO_Pin_12                ((uint16_t)0x1000)  /*!< Pin 12 selected */
#define GPIO_Pin_13                ((uint16_t)0x2000)  /*!< Pin 13 selected */
#define GPIO_Pin_14                ((uint16_t)0x4000)  /*!< Pin 14 selected */
#define GPIO_Pin_15                ((uint16_t)0x8000)  /*!< Pin 15 selected */
#define GPIO_Pin_All               ((uint16_t)0xFFFF)  /*!< All pins selected */




// GPIO_Speed:IO口 傳輸速度
typedef enum
{ 
  GPIO_Speed_10MHz = 1,            // 10MHZ
  GPIO_Speed_2MHz,                 // 2MHZ
  GPIO_Speed_50MHz                 // 50MHZ
}GPIOSpeed_TypeDef;                




// GPIO_Mode:IO口模式
typedef enum
{ GPIO_Mode_AIN = 0x0,				// 模擬輸入
  GPIO_Mode_IN_FLOATING = 0x04,		// 浮空輸入
  GPIO_Mode_IPD = 0x28,		    	// 下拉輸入
  GPIO_Mode_IPU = 0x48,				// 上拉輸入
  GPIO_Mode_Out_OD = 0x14,			// 開漏輸出
  GPIO_Mode_Out_PP = 0x10,			// 推挽輸出
  GPIO_Mode_AF_OD = 0x1C,			// 復(fù)用開漏輸出
  GPIO_Mode_AF_PP = 0x18			// 復(fù)用推挽輸出
}GPIOMode_TypeDef;

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);? ? ? ? //外設(shè)時鐘初始化

該開發(fā)板的LED燈管腳號為PC13,所以這里我們初始化:RCC_APB2Periph_GPIOC

#define RCC_APB2Periph_AFIO              ((uint32_t)0x00000001)
#define RCC_APB2Periph_GPIOA             ((uint32_t)0x00000004)
#define RCC_APB2Periph_GPIOB             ((uint32_t)0x00000008)
#define RCC_APB2Periph_GPIOC             ((uint32_t)0x00000010)
#define RCC_APB2Periph_GPIOD             ((uint32_t)0x00000020)
#define RCC_APB2Periph_GPIOE             ((uint32_t)0x00000040)
#define RCC_APB2Periph_GPIOF             ((uint32_t)0x00000080)
#define RCC_APB2Periph_GPIOG             ((uint32_t)0x00000100)
#define RCC_APB2Periph_ADC1              ((uint32_t)0x00000200)
#define RCC_APB2Periph_ADC2              ((uint32_t)0x00000400)
#define RCC_APB2Periph_TIM1              ((uint32_t)0x00000800)
#define RCC_APB2Periph_SPI1              ((uint32_t)0x00001000)
#define RCC_APB2Periph_TIM8              ((uint32_t)0x00002000)
#define RCC_APB2Periph_USART1            ((uint32_t)0x00004000)
#define RCC_APB2Periph_ADC3              ((uint32_t)0x00008000)
#define RCC_APB2Periph_TIM15             ((uint32_t)0x00010000)
#define RCC_APB2Periph_TIM16             ((uint32_t)0x00020000)
#define RCC_APB2Periph_TIM17             ((uint32_t)0x00040000)
#define RCC_APB2Periph_TIM9              ((uint32_t)0x00080000)
#define RCC_APB2Periph_TIM10             ((uint32_t)0x00100000)
#define RCC_APB2Periph_TIM11             ((uint32_t)0x00200000)

2.程序源碼

main.c

#include "led.h"
#include "delay.h"



void Device_Init(void)  //初始化 外設(shè)
{
	delay_init();					//延時函數(shù)初始化
	LED_Pin_Confog();			//配置 LED管腳
}



int main(void)
{	 
	Device_Init();		//初始化 外設(shè)
	
	while(1)
	{
		LED1 = 0;       //LED:亮
		delay_ms(1000);
		LED1 = 1;       //LED:滅
		delay_ms(1000);
	}
}

LED.c

#include "led.h"


void LED_Pin_Confog(void)       //配置 LED管腳
{
	GPIO_InitTypeDef LED_Pin;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	
	LED_Pin.GPIO_Mode = GPIO_Mode_Out_PP;    //模式:推挽輸出
	LED_Pin.GPIO_Pin = GPIO_Pin_13;          //管腳號:13腳
	LED_Pin.GPIO_Speed = GPIO_Speed_50MHz;   //速度:50MHZ
	GPIO_Init(GPIOC,&LED_Pin);   

    GPIO_SetBits(GPIOC,GPIO_Pin_13);         //IO口輸出:高電平(初始化狀態(tài):燈滅)
}                                            

LED.h

#ifndef __led_h
#define __led_h

#include "stm32f10x.h"

#define LED1 PCout(13)  

void LED_Pin_Confog(void);		//配置 LED管腳

#endif

注意:這里調(diào)用庫函數(shù)的時候,盡量使用他為提供的宏定義 參數(shù),否則會報枚舉錯誤的 waring,希望大家避免該錯誤。

總結(jié)

以上就是STM32F103C8T6點燈教程,今天的分享就到這里,如有不足還望大家見諒!?。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-447401.html

到了這里,關(guān)于STM32F103C8T6 點亮LED燈的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Stm32f103c8t6(proteus仿真)學(xué)習(xí)——3.按鍵控制LED燈

    Stm32f103c8t6(proteus仿真)學(xué)習(xí)——3.按鍵控制LED燈

    按鍵:button 電阻:res 先配置LED燈的GPIO 編寫LED亮滅的函數(shù) 實現(xiàn)按下按鍵LED燈的狀態(tài)取反 led.c總代碼 先配置按鍵的GPIO 獲取當(dāng)前按鍵鍵值的函數(shù) key.c總代碼 5.1 按鍵按下實現(xiàn)LED亮或者滅 仿真效果圖: 5.2 按鍵按下實現(xiàn)LED狀態(tài)取反 仿真效果圖: 百度網(wǎng)盤 鏈接:https://pan.baidu.co

    2024年02月07日
    瀏覽(22)
  • STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板載PC13LED閃爍

    STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板載PC13LED閃爍

    之前的系列教程都是基于Arduino的,但是公司招聘51和stm32的開發(fā)還是多些,所以特別開了一個stm32的系列。 這個系列特點是注重了 Arduino 編程思維和習(xí)慣下向STM32開發(fā)的過渡 。前期沒有涉及到太多寄存器相關(guān)的知識,利用HAL庫和STM32CubeIDE快速入手STM32的數(shù)字輸入/輸出、模擬輸

    2024年02月16日
    瀏覽(21)
  • STM32 F103C8T6學(xué)習(xí)筆記2:GPIO的認識—GPIO的基本輸入輸出—點亮一個LED

    STM32 F103C8T6學(xué)習(xí)筆記2:GPIO的認識—GPIO的基本輸入輸出—點亮一個LED

    今日繼續(xù)學(xué)習(xí)使用? STM32 F103C8T6開發(fā)板 點亮一個LED燈,文章提供源碼,測試工程,實驗效果圖,希望我的歸納總結(jié)會對大家有幫助~ 目錄 GPIO的認識與分類 : 引腳安排整理: 定時器的引腳例舉: 串口的引腳例舉: ?CAN串口通信: SPI通信: IIC通信: ?其余引腳: 燒錄引腳:

    2024年02月11日
    瀏覽(19)
  • STM32F103C8T6定時器實現(xiàn)led的周期閃爍及PWM實現(xiàn)流水燈

    STM32F103C8T6定時器實現(xiàn)led的周期閃爍及PWM實現(xiàn)流水燈

    通過定時器Timer方式實現(xiàn)時間的精準(zhǔn)控制,相當(dāng)于給CPU上了一個鬧鐘,CPU平時處理其它任務(wù),當(dāng)定時時間到了以后,處理定時相關(guān)的任務(wù)。請設(shè)置一個5秒的定時器,每隔5秒從串口發(fā)送“hello windows!”;同時設(shè)置一個2秒的定時器,讓LED等周期性地閃爍。 使用TIM3和TIM4,分別輸

    2024年01月23日
    瀏覽(32)
  • 舵機控制(STM32F103C8T6)

    舵機控制(STM32F103C8T6)

    ? ? ? ? 本文是以 STM32F103C8T6 作為主控芯片,通過PB6端口輸出PWM,實現(xiàn)控制180°舵機。 (一)概述 ? ? ? ? 舵機是一種位置伺服驅(qū)動器器,是一種帶有輸出軸的小裝置。當(dāng)我們向伺服器發(fā)送一個控制信號時,輸出軸就可以轉(zhuǎn)到特定的位置。只在控制信號持續(xù)不變,伺服機構(gòu)就

    2023年04月09日
    瀏覽(25)
  • 功耗測評 | STM32F103C8T6

    功耗測評 | STM32F103C8T6

    STM32F103C8T6 MCU越來越廣泛的應(yīng)用在生產(chǎn)生活的各個領(lǐng)域,外接豐富的傳感器、功能模塊、通信模塊、顯示存儲等可以形成各種可樣的產(chǎn)品項目應(yīng)用。對于功耗要求比較高的產(chǎn)品,一般會選擇STM32L系列的MCU,但是從功耗的評測角度,邏輯上是基本相似的。 在很多應(yīng)用場合中都對

    2024年02月07日
    瀏覽(31)
  • STM32F103C8T6板子介紹

    STM32F103C8T6板子介紹

    STM32簡介 STM32是ST公司基于ARM Cortex-M內(nèi)核開發(fā)的32位微控制器 STM32常應(yīng)用在嵌入式領(lǐng)域,如智能車、無人機、機器人、無線通信、物聯(lián)網(wǎng)、工業(yè)控制、娛樂電子產(chǎn)品等 STM32功能強大、性能優(yōu)異、片上資源豐富、功耗低,是一款經(jīng)典的嵌入式微控制器。 ?STM32F103C8T6 F1XX片上資源

    2024年02月11日
    瀏覽(22)
  • STM32F103C8T6系統(tǒng)板

    STM32F103C8T6系統(tǒng)板

    1.電源部分 2.復(fù)位 3.晶振 4. 電源電路——防反接 有關(guān)二極管 漫談二極管防電源反接電路 本次采用上圖右下角的NMOS防反接電路。 電源電路——電源芯片 AMS1117是AMS公司的 ,LM1117是NS(美國國家半導(dǎo)體)的,LM1117要貴很多,所以一般的用AMS1117就可以了。 (以下分析參考STM32F10

    2024年02月02日
    瀏覽(21)
  • STM32F103C8T6串口通信

    STM32F103C8T6串口通信

    ? 首先來看一下需要操作的函數(shù),以及配置的步驟: 圖1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2?? Code: usart.c #include \\\"usart.h\\\" void ustart_Init(void ) { GPIO_InitTypeDef GPIO_Init_Ustar ; // 定義輸出端口TX的結(jié)構(gòu)體對象 USART_InitTypeDef USTART_Init; // 定義串口初始化結(jié)構(gòu)體對象

    2024年02月16日
    瀏覽(28)
  • STM32F103C8T6移植FreeRTOS

    STM32F103C8T6移植FreeRTOS

    根據(jù)自己開發(fā)板型號下載地址:STM32相關(guān)內(nèi)容下載地址 SDK直接下載地址:STM32直接下載地址 下載參考博客 FreeROTS下載地址 選用V9.0.0 版本 個人創(chuàng)建目錄如下,可做參考 keil目錄 鏈接頭文件 ? 修改堆棧大小 ? 修改中斷函數(shù)名 去掉stm32f10x_it.c終端函數(shù) 增加FreeRTOS中斷 特別解釋

    2024年02月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包