STM32学习笔记001:点亮RGB

发布者:sjjawx831最新更新时间:2019-07-11 来源: eefocus关键字:STM32  学习笔记  点亮RGB 手机看文章 扫描二维码
随时随地手机看文章

我学习stm32使用的是f103c8t6核心板、洞洞板和外设,并没有使用开发板,我个人的观点是不要被开发板限制住,接线也是一门学问,可以同时学到些电路的知识,一举两得;我参考的是正点原子的教程,但是用的芯片和他们不一样,工程结构有借鉴,但是不完全一样,代码都是自己一行行敲的,也不涉及抄袭,就是想记录一下自己的学习过程,在这声明一下。


下载和调试器是 jlink ob ,tb上那种20多的就可以


配置MDK和建工程就跳过了,网上有详细教程,认真看看都会


工程文件里最重要是单片机的启动文件,一定要选对,比如我这个就是startup_stm32f10x_md.s,就是中等容量的f103芯片


下面上代码,注释都很清晰了,点亮RGB灯和点亮LED是一样的,只是RGB要控制3种颜色,怎么混合看个人喜好啦


这是led.c


#include "led.h"

#include "stm32f10x.h"

 

void LED_Init(void)

{

  GPIO_InitTypeDef GPIO_InitStructure;

  

  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC , ENABLE);  //GPIO C

 

 

//LED -> PC13

 

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;        //端口13

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出

  GPIO_Init(GPIOC, &GPIO_InitStructure);

//LED -> PC14

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 

  GPIO_Init(GPIOC, &GPIO_InitStructure);

//LED -> PC15

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 

  GPIO_Init(GPIOC, &GPIO_InitStructure);

}

 这是led.h


#ifndef __LED_H

#define __LED_H

 

 

void LED_Init(void);

 

 

#endif

main函数


#include "stm32f10x.h"

#include  "led.h"

#include "delay.h"

 

int main(void)

{

 

delay_init();

LED_Init();

while(1)

{

 

// RGB  

PCout(15)=1;

delay_ms(500);

PCout(15)=0;

delay_ms(500);

PCout(14)=1;

delay_ms(500);

PCout(14)=0;

delay_ms(500);

PCout(13)=1;

delay_ms(500);

PCout(13)=0;

delay_ms(500);

PCout(15)=1;

PCout(14)=1;

delay_ms(500);

PCout(15)=0;

PCout(14)=0;

delay_ms(500);

PCout(15)=1;

PCout(13)=1;

delay_ms(500);

PCout(15)=0;

PCout(13)=0;

delay_ms(500);

PCout(13)=1;

PCout(14)=1;

delay_ms(500);

PCout(13)=0;

PCout(14)=0;

delay_ms(500);

PCout(15)=1;

PCout(14)=1;

PCout(13)=1;

delay_ms(500);

PCout(15)=0;

PCout(14)=0;

PCout(13)=0;

delay_ms(500);

 

}

 

}



关键字:STM32  学习笔记  点亮RGB 引用地址:STM32学习笔记001:点亮RGB

上一篇:怎样用STM32 中的 I2C读写EEPROM(二)
下一篇:stm32 I2C问题 I2C_CheckEvent()

推荐阅读最新更新时间:2024-11-11 09:03

stm32的可编程电压检测PVD
配置PVD的顺序如: 注意一般使能PVD在系统初始化完毕开启。 /** * @brief Configures EXTI Lines. * @param None * @retval None */ static void EXTI_Configuration(void) { EXTI_InitTypeDef EXTI_InitStructure; /* Configure EXTI Line16(PVD Output) to generate an interrupt on rising and falling edges */ EXTI_ClearITPendingBit(EXTI_Line16
[单片机]
I2C上拉电阻问题分析(基于stm32 HAL库)
在使用stm32读写 ST温湿度hts221时,使用I2C总线,总线上还挂在了别的传感器,发现有时候可以读出数据,有时候读不出数据,一直是0。 首先,stm32 配置I2C IO时,使用的是AF_OD,即使用复用开漏输出,这也是官方I2C所要的方式,电流电压取决于外部电路。同时IO也配置了内部上拉。 /** * @brief I2C MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * -
[单片机]
I2C上拉电阻问题分析(基于<font color='red'>stm32</font> HAL库)
意法半导体(ST)展示STM32开放式开发环境
2016年4月18日,横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST)的STM32开放式开发环境(Open Development Environment ,ODE)在发布仅一年后,就已成为功能完整的集成开发生态系统,帮助开发人员开发包括物联网(IoT)应用在内的嵌入式系统。 STM32开放式开发环境是开发人员使用意法半导体的先进元器件开启设备应用创新之路的理想解决方案。以STM32 ARM Cortex 32位微控制器为基础,STM32开放式开发环境包含全套的功能扩展板,让用户能够在开发中的产品上轻松增加传感器、通信接口、电源管理、运动控制及致动,以及信号转换功能。此外
[单片机]
意法半导体发布全新STM32超值系列微控制器
意法半导体(STMicroelectronics,简称ST)发布最新的STM32F030超值系列微控制器。批量订货最低价仅为0.32美元,STM32F030是低预算项目的理想选择,同时还让设计人员有机会使用型号齐全且软硬件兼容的32位微控制器产品组合,从而提升应用性能,扩大产品系列。 全新STM32F030超值系列基于48MHz的ARM® Cortex™-M0处理器内核。与同类竞争产品不同,STM32F030虽然只有8位微控制器的价格,但性能和特性并没有受到任何影响,如没有降低内核速度,同样保持丰富的外设数量和种类。 意法半导体微控制器产品部总经理Michel Buffa表示:“STM32F0超值型让32位微控制器更加平易
[单片机]
stm32 7位数据位 usart_wordlength_
stm32 7位数据位如何设置?一般情况下设置数据位为8位、1个停止位,再设置每个发送字节的最高位为“1”,去掉收到字节的最高位即可。这样每个字节的最高位自动变成1个停止位。 stm32 7位数据位 usart_wordlength_处理代码如下:Table 155. Frame formats M bit PCE bit USART frame 0 0 | SB | 8 bit data | STB | 0 1 | SB | 7-bit data | PB | STB | 1 0 | SB | 9-bit data | STB | 1 1 | SB | 8-bit data PB | STB 但是值得注意的是,STM
[单片机]
基于STM32的直流电机PID调速系统设计与实现
直流调速系统广泛应用于低转速、高精度等各领域,如精密办公设备(喷墨打印机、激光打印机),自动售货机,家用电器、机器人和玩具设备等。其发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术和微机应用技术的最新发展成就。顺应调速系统智能化、简单化的发展趋势,本设计采用一款性价比高、功耗低的基于ARMCortex⁃M3内核的STM32单片机为控制核心,结合PID控制技术,实现了直流电机范围大、精度高的调速性能。 1、系统的总体设计 该调速系统能够实现对电机的启动、制动、正反转调速、测速和数据上传等功能,可方便地实现直流电机的四象限运行。本系统的性能指标为:调速精度高达到1r/min;调速稳态误差不超过0.5%;调
[单片机]
基于<font color='red'>STM32</font>的直流电机PID调速系统设计与实现
STM32开发笔记33:解决USB CDC “该设备无法启动”问题
单片机型号:STM32F401 调试STM32的USB CDC设备已经有好多次了,可以看一下前面写的日志,针对不同的STM32 MCU都进行了调试。原本以为STM32F4会很简单,可处处是坑,已经调到半夜才解决问题,把问题重新梳理。 我现在使用的芯片时STM32F401,在STM32CubeMX中,按照以下步骤设置。 1、设置为全速从设备,不做USB电源检测。 2、使能CDC,其它采用默认设置。 按照上述设置生成的程序,下载到芯片后,接入计算机,默认是这样的 仔细查看细节问题是这样的 找了好久不能解决问题,网上有一种说法是,是更改usbd_conf.h
[单片机]
<font color='red'>STM32</font>开发<font color='red'>笔记</font>33:解决USB CDC “该设备无法启动”问题
STM32电容触摸按键原理
RC充放电电路原理 如图: 电阻R和电容C串联 当开关断开时,电阻R,电容0两端电压都是0,无电流 当开关闭合时(瞬间),电阻R两端V1(上端)和0(下端)有电压差,产生电流 此时电子通过电阻R积累在电容正极(上端),直到电容C电压为V1,充电完成 此时R两端电压均为V1,无压差,不再有电流经过 电容C的电压从0-V1,充电过程中,有充电时间t和电容C的电压Vt之间的关系(右图) 看以看出随充电时间越来越长,充电的效率(斜率)越来越低 分析: 当按键按下瞬间,电阻R两端电压V1和0,此时瞬间电流为I = V1 / R 当电容C充电一段时间后,假设电容C此时的电压为Vc,那么此时电阻C两端的电
[单片机]
<font color='red'>STM32</font>电容触摸按键原理
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved