STM32hal库考试整理

前提

在这里插入图片描述

一、点灯

(1)图形配置

在这里插入图片描述

(2)代码实现

  1. 主函数中添加–代码只执行一次
  2. while中添加–代码一直执行
  3. 相关代码
    • HAL_GPIO_WritePin(led0_GPIO_Port, led0_Pin, 1);
      (用户自定义名字的引脚组,用户自定义的引脚号,1是输出高电平)
    • HAL_GPIO_TogglePin(led0_GPIO_Port, led0_Pin);
      (用户自定义名字的引脚组,用户自定义的引脚号)
    • HAL_Delay(100);
      (写100延时100ms)

(3)例子

  HAL_GPIO_WritePin(led1_GPIO_Port, led1_Pin, 1);//给高
  HAL_Delay(100);//100ms后
  HAL_GPIO_WritePin(led1_GPIO_Port, led1_Pin, 0);//给低
  HAL_Delay(100);//100ms后

二、LCD1602

(1)图形配置

在这里插入图片描述

(2)代码实现

  1. 加载头文件
    • #include “lcd1602.h”
    • #include “stdio.h”
  2. 主函数中初始化LCD1602
    • LCD_Init();
  3. 向屏幕写字符串
    • LCD_Puts(3, 0, “I LOVE YOU”);(3列,1行 ”XXXXX“)最好16个XXXX
  4. 将数值转化成字符写到屏幕
    • 定义temp:----uint8_t temp[16];
    • 定义adcvalue:----uint32_t adcvalue=0;
    • sprintf(temp,“ADC = %d”,adcvalue);将adcvalue变成字符型temp ”是temp的内容“
    • LCD_Puts(0, 1, temp);//将整形变量写入屏幕

三、外部中断按键

(1)图形配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)代码实现

  1. 回调函数实现 写主函数外面
    • void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
      在这里插入图片描述
  2. 回调函数实现模板
    void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
    {
    if(GPIO_Pin == key_Pin) // 固定 =自定义的引脚号
    {
    //用户代码
    }
    }

四、定时器

(1)图形配置

在这里插入图片描述

(2)代码实现

  1. 计算公式
    xxxus = x1*x2/8 其中x1 Pr;x2是Pe
    在这里插入图片描述
  2. 模板在主函数外面写
    void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    {
    if( htim == &htim2 )
    {
    //HAL_GPIO_TogglePin(led0_GPIO_Port, led0_Pin);
    //HAL_GPIO_WritePin(led0_GPIO_Port, led0_Pin, 1);
    }
    }
  3. 初始化操作
    在主函数中写启动定时器的函数 HAL_TIM_Base_Start_IT(&htim2);

五、串口

(1)图形配置

在这里插入图片描述

(2)代码实现

  1. HAL_UART_Transmit(&huart1, a, sizeof(a), 0xffff);
    (哪个串口,发送哪个变量,这个变量的大小,时间500/0xffff)
  2. 定义变量 uint8_t a[32]=“HELLO WORD”; / uint8_t a[32];
  3. 计算变量大小sizeof(a)
  4. 如果写在主函数 执行一次
  5. 如果写While中一直执行
  6. 如果发送ADC到串口
    • sprintf(temp,“ADC = %d”,adcvalue);将adcvalue变成字符型temp ”是temp的内容“
    • HAL_UART_Transmit(&huart1, temp, sizeof(temp), 0xffff);//将ADC写入串口黑框框

六、ADC

(1)图形配置

在这里插入图片描述
在这里插入图片描述

(2)代码实现

    HAL_ADC_Start(&hadc1);//启动ADC(ADC几)
    HAL_ADC_PollForConversion(&hadc1, 500);(等待读取数值)(ADC几,等待时间)
    adcvalue=HAL_ADC_GetValue(&hadc1);//将读取到的值给adcvalue

adcvalue是定义的变量:uint32_t adcvalue=0;必须32位 在主函数中定义

(3)例子

uint32_t adcvalue=0;
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 500);
adcvalue=HAL_ADC_GetValue(&hadc1);
sprintf(temp,"ADCgg = %d",adcvalue);//将整型转化为字符型 只有字符型才能用下面两个函数显示
//LCD_Puts(0, 1, temp);//lcd显示ADC数值
HAL_UART_Transmit(&huart1, temp, sizeof(temp), 0xffff);//串口显示ADC数值
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、 ARM微处理器有 7种工作模式,它们分为两类 非特权模式 、 特权模式 。其中用户模式属于 非特权模式 2、 ARM支持两个指令集, ARM核因运行的指令集不同,分别有两个状态 ARM 、 Thumb ,状态寄存器CPSR的 T 位反映了处理器运行不同指令的当前状态 3、 ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器, R15 寄存器用于存储PC,R13通常用来存储 SP 4、 ARM处理器有两种总线架构,数据和指令使用同一接口的是 冯诺依曼 ,数据和指令分开使用不同接口的是 哈佛结构 1. 下列不是嵌入式系统特点的是: A. 系统内核小 B. 专用性强 C. 系统精简 D. 实时性要求不高 2. 关于ARM汇编和C语言混合编程下列错误的是: A.C语言中可以直接嵌入某些汇编指令 B. C语言中可以调用汇编的子程序 C. 汇编程序中可以调用C语言的函数 D. C语言嵌入的汇编指令时,不可以使用C的变量 3. 关于ATPCS规则,说法错误的是: A. 只能使用R0-R3来传递参数 B. R13为堆栈指针SP,需要保护 C. R14为连接寄存器,用于存放程序返回地址 D. 单字的返回值存放在R0 4. 关于交叉编译描述正确的是: A. 编译器运行在目标机,生成的可执行文件在宿主机上运行 B.编译器运行在宿主机,生成的可执行文件在宿主机上运行 C.编译器运行在目标机,生成的可执行文件在目标机上运行 D.编译器运行在宿主机,生成的可执行文件在目标机上运行 5. 建立嵌入式Linux开发环境中,使用Bootp协议的直接目的是: A. 分配宿主机的IP地址 B. 分配目标机的IP地址 C. 用于宿主机和目标机之间通讯 D. 用于监控目标机的运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值