STM32点LED灯
一、建立项目模板
这里的user中重复引用了system_stm32f10x.c
Output中选择Create HEXFile,并且可以选择输出路径。
Listing中可以选择输出路径。
然后在C/C++中加入两个宏:
STM32F10X_MD,USE_STDPERIPH_DRIVER
并且还要勾选One ELF Section per Function,加入头文件路径:
在Debug中,使用J-Link,并设置
在Utilities,选择J-Link并Setting中:
二、写点LED代码
GPIO初始化:
/**8位的LED的IO口***/
#define PIN_LED (GPIO_Pin_8 | GPIO_Pin_9 |GPIO_Pin_10 |GPIO_Pin_11 |GPIO_Pin_12 |GPIO_Pin_13 |GPIO_Pin_14 |GPIO_Pin_15)
void LED_INIT(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = PIN_LED;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*打开LED使用的GPIO的时钟使能*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/*进行初始化*/
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
设置多位GPIO电平:
/****************************
* Function Name : LED_SET
* Description : 设置LED的状态,使用了8位。因为一次使用16位,所以要先读取
* Input : data
* Output : None
* Return : None
*****************************/
void LED_SET(uint8_t data)
{
uint16_t setValue; setValue = GPIO_ReadOutputData(GPIOB);
setValue &= 0x00ff; //使用高8位
setValue |= (uint16_t)data <<; GPIO_Write(GPIOB, setValue);
}
简单的main函数
/****************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Output : None
* Return : None
****************************************************************************/ int main(void)
{
LED_INIT();
LED_SET(0x0f); while ()
{
LED_SET(0xff);
Delay();
LED_SET(0x00);
Delay();
}
} /*******************************************************************************
* Function Name : Delay
* Description : ???±???ò
* Input : c
* Output : None
* Return : None
*******************************************************************************/ void Delay(uint16_t c)
{
uint16_t a,b;
for(; c>; c--)
for(a=; a>; a--)
for(b=; b>; b--);
}
可以直接设置单独的GIPO输出位:
GPIO_WriteBit(GPIOB, GPIO_Pin_15, Bit_SET);
GPIO_WriteBit(GPIOB, GPIO_Pin_15, Bit_RESET);
STM32点LED灯的更多相关文章
- 小结-stm32 驱动LED灯
使用位带操作,位带操作就是把每个比特膨胀成一个32位的字,当访问这些字的时候就访问这些比特位. http://www.cnblogs.com/xiaobo-Linux/ 然后,端口使能: //³õʼ ...
- STM32点亮闪烁LED灯
详解请看其他博客: http://www.cnblogs.com/whik/p/6672730.html http://www.51hei.com/bbs/dpj-38605-1.html /*本程序 ...
- stm32开发笔记(三):stm32系列的GPIO基本功能之输出驱动LED灯、输入按键KEY以及Demo
前言 stm32系列是最常用的单片机之一,不同的版本对应除了引脚.外设.频率.容量等'不同之外,其开发的方法是一样的. 本章讲解使用GPIO引脚功能驱动LED灯和接收Key按钮输入. STM ...
- STM32 用c语言控制4个LED灯从左向右无限流动
在用c语言写LED流水灯的前提条件是配置好其他环境,这里我就不说环境了, 想让LED灯无限循环时,首先要想到的是无限循环函数,我这里利用的是for函数 无限循环. #include "stm ...
- 《RT-Thread Studio开发STM32》第一章~第一节《配置STM32H743XIH6点亮LED灯》
安装RT-Thread Studio后添加相关芯片库文件,打开软件 打开SDK管理界面,安装相关的库文件,本次采用STM32H743XIH6芯片,野火开发板. 新建工程并设置相关的参数 先编译下下载到 ...
- Visual Studio 2022 开发 STM32 单片机 - 环境搭建点亮LED灯
安装VS2022社区版软件 选择基础的功能就好 安装VisualGDB软件(CSDN资源) 按照提示一步一步安装就好 VisualGDB激活软件(CSDN资源) 将如下软件放在VisualGDB的安装 ...
- 第7章 使用寄存器点亮LED灯
第7章 使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- C语言版——点亮LED灯,深入到栈
在上一篇进行了汇编语言的编写之后,我们采用C语言来编写程序,毕竟C语言才是我们使用最多的语言. 仅仅是点亮LED灯显然太过于简单,我们需要分析最后的反汇编,了解函数调用栈,深入C语言骨髓去分析代码,并 ...
- 第7章 使用寄存器点亮LED灯—零死角玩转STM32-F429系列
第7章 使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
随机推荐
- SQL Server 2008性能故障排查(三)——IO
接着上一章:CPU瓶颈 I/O瓶颈(I/O Bottlenecks): SQLServer的性能严重依赖I/O子系统.除非你的数据库完全加载到物理内存中,否则SQLServer会不断地把数据库文件从缓 ...
- delphi 半透明窗体类
{******************************************************************************* 半透明窗体控件 版本:1.0 功能说明 ...
- 2018-2019 2 20165203 《网络对抗技术》Exp9 Web安全基础
2018-2019 2 20165203 <网络对抗技术>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS ...
- 安装maven之后,cmd提示mvn不是内部命令的解决办法
1.maven的安装教程 下载地址为:http://maven.apache.org/download.cgi 进入此页面之后 点击下载,然后解压,我把目录名改为maven,目录结构如下图所示 下面我 ...
- MYSQL 使用存储过程批量更新表数据
功能:实现将表result_good_city_dzl中的字段lat更新为表 result_good_city_lh中的lat,条件是两个表中的id一样 即: update result_good_c ...
- luoguP1083 借教室(题解)(我用的线段树)
luoguP1083 借教室 题目 #include<cstdio> #include<iostream> #include<cmath> #include< ...
- jq实现两个input输入同时不为空时,改变确认框背景颜色
<!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...
- 42.Flatten Binary Tree to Linked List
Level: Medium 题目描述: Given a binary tree, flatten it to a linked list in-place. For example, given ...
- SpringMVC学习(10):异常处理
在项目中如何处理出现的异常,在每个可能出现异常的地方都写代码捕捉异常?这显然是不合理的,当项目越来越大是也是不可维护的.那么如何保证我们处理异常的代码精简且便于维护呢?这就是本篇要讲的内容->异 ...
- Mac 安装cnpm
1.先安装node node的下载地址:http://nodejs.cn/download/ 这个没什么好说的,安装完成后测试一下,在终端输入:node -v 这时候就可以看到安装的nod ...