STM32L0 HAL库 IO读写功能

开发环境使用 MDK5.16a + CUBEMX生成代码

开发板使用:NUCLEO-L053R8

核心芯片:STM32L053R8

今天主要学习了下最基础的IO的读写,IO使用 PA5   LED输出, PC13按键输入

使用CUBEMX生成LED和按键的设置输入输出的代码(此步略去),比较简单戳戳点点就行了

注意事项:

1.NUCLEO板子没外置晶振,所以晶振选择HSI

2.按键最好设置使用内部上拉,个人习惯。没仔细看电路上的按键是否是有上拉。

3.MDK使用GB2312编码格式,其它的编码写过的中文注释,重新用CUBEMX生成有时候会乱码。

4.自己写的代码一定要写在系统提示的user code begin 和end之间,这样重新生成CUBEMX时候不会覆盖这部分代码,其它的地方写的程序在生成代码时候会被软件覆盖掉。

5.MDK5有自动的代码补全功能,还是挺好使的,记得开启下。

IO的读写学习:

    if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){        //是否有按键按下
        HAL_Delay(10);                //延迟去抖动
        if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){        //重新检测是否有按键按下
            HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);    //按键按下了,点亮LED
        }else{
            HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);    //松开按键,熄灭LED
        }
    }
时间: 2024-10-07 16:08:10

STM32L0 HAL库 IO读写功能的相关文章

STM32L0 HAL库 UART 串口读写功能

串口发送功能: uint8_t TxData[10]= "01234abcde"; HAL_UART_Transmit(&huart2,TxData,10,0xffff);//把TxData的内容通过uart2发送出去,长度是10,timeout的时间是最大值0xffff 串口接收功能1: uint8_t value='F'; HAL_UART_Receive(&huart2,(uint8_t *)&value,1,1000);//在这个语句停留1000ms内等

STM32L0 HAL库 TIM定时1s

STM32L0的定制器资源: 本实验使用TIM6 HSI频率是16Mhz,则单指令周期是1/16Mhz 预分频设置为1600,则每跑1600下,定时器加1,相当于定时器加1的时间是1600*(1/16Mhz)=100us 定义周期为10000,则计数到10000时候,定时器溢出,定时器溢出的时间为10000*100us=1s 有了这几个基本参数,我们按照如下设置CUBEMX HAL的库的调用: HAL_TIM_Base_Init这个已经在CubeMX自动生成和调用了,不用再管了. HAL_TIM

【HAL库每天一例】freemodbus移植

例程下载:资料包括程序.相关说明资料以及软件使用截图 百度云盘:https://pan.baidu.com/s/1slN8rIt 密码:u6m1 360云盘:https://yunpan.cn/OcPiRp3wEcA92u密码 cfb6 (硬石YS-F1Pro开发板HAL库例程持续更新\6. 软件设计之Modbus(HAL库版本)\YSF1_HAL_freemodbus_001. freemodbus移植)/**  ****************************************

STM32F103 PWM输出实验(HAL库)

1.芯片输出PWM波形打码步骤 1.0主函数 int main(void) { HAL_Init(); //初始化HAL库 Stm32_Clock_Init(RCC_PLL_MUL9); //设置时钟,72M delay_init(72); //初始化延时函数 uart_init(115200); //初始化串口 LED_Init(); //初始化LED TIM1_PWM_Init(20000,72); //72分频,即1M . 1000000/20000 = 50 Hz ,即20ms whil

VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试

现在便宜的VPS主机越来越多了,一些美国的VPS主机甚至给出1美元一月的VPS,堪比虚拟主机还要便宜,巨大的价格优势吸引不少人购买和使用,而近些年来国内的主机商也开始意识到便宜的VPS对草根站长的诱惑力,纷纷推出了低价VPS,其中突出的代表就是阿里云. 所谓“一分钱一分货”,把VPS当成虚拟主机来卖的如果不是做慈善事业就是超售严重,买回来的VPS到底值不值这个价钱,我们一般需要对VPS主机进行一番性能测试,涉及的项目主要有CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试等等. 本

STM32标准外设库、 HAL库、LL库

工作以来一直使用ST的STM32系列芯片,ST为开发者提供了非常方便的开发库.到目前为止,有标准外设库(STD库).HAL库.LL库 三种.前两者都是常用的库,后面的LL库是ST最近才添加,目前支持的芯片也偏少.各库如下所示: 其中STD库和HAL库两者相互独立,互不兼容.几种库的比较如下: 目前几种库对不同芯片的支持情况如下: 上图中,LL库目前有部分芯片不支持,官方计划2017年逐步完善. STM32Snippets 它是代码示例的集合,直接基于STM32外设寄存器,可在文档和软件包中使用.

Java IO读写中文各种乱码问题 【转】

Java IO读写中文各种乱码问题 转自:http://blog.sina.com.cn/s/blog_484ab56f0101muzh.html java.io.*读写中文各种乱码,很费劲.不完全解决方法如下: 对于Reader,直接使用Reader系列读取中文会乱码,需要先生成InputStream,再通过InputStreamReader转换为Reader,同时设定编码,才能避免乱码.如 FileInputStream fis = new FileInputStream("D:/a.txt

通过file读写功能实现文件复制粘贴功能

通过file读写功能实现文件复制粘贴功能 import java.io.*; public class Copy1M { public static void main(String arg[]) throws FileNotFoundException{ long begin = System.currentTimeMillis(); //记录程序开始事件 //**************************************获取文件属性***********************

通过数据库评估存储设备IO性能-Oracle 11g IO校准功能介绍

通过数据库评估存储设备IO性能 ---------Oracle11g IO校准功能介绍 前言 I/O子系统是ORACLE数据库的一个重要组成部分,因为I/O操作是贯穿数据库管理全过程,它操作的对象包括日志.表.索引.数据字典.以及一些排序.undo操作等等,每个数据库读取或者写入磁盘上的数据,都会产生磁盘IO,可以这么说一个正常业务的数据库系统,80%的性能消耗都与IO有关,相对于网络.CPU.内存等其他硬件的迅猛发展,磁盘的读写速度的发展却相对滞后,这也导致许多业务性能瓶颈集中在有限的磁盘IO