当前位置: 首页 > news >正文

Keil笔记(缘更)

Keil

  • 一、使用Keil时可能会出现的问题
    • 1.Project框不见了
    • 2.添加文件时找不到
    • 3.交换文件位置
    • 4.main.c测试报1 warning
    • 5.搜索Ctrl+F
  • 二、模电常识(白话随便版)
    • 一、名词解释
    • 二、基础门电路
  • 三、STLINK点灯操作
    • 1.配置寄存器进行点灯
    • 2.使用库函数进行点灯
  • 四.GPIO
    • 1.LED闪烁
    • 4.按键控制LED
  • 注:

一、使用Keil时可能会出现的问题

1.Project框不见了

view->Project Window
在这里插入图片描述

2.添加文件时找不到

原因:文件类型忘记选择All files
在这里插入图片描述

3.交换文件位置

当经常使用的文件,排在后面,不方便使用,可以用这个调整文件位置。(点击魔术棒旁边哪个三色图形)
在这里插入图片描述

4.main.c测试报1 warning

原因:last line of file ends without a newline。
没有如图的第10行,记得空一行。(文件最后多一个回车就行)
如果改完后没效果,需要重新打开一下main.c。
在这里插入图片描述
下次打开文件,还是报错,将代码对齐一下后就好了。(上图main函数整体往后了一格)
在这里插入图片描述

5.搜索Ctrl+F

鼠标点击要搜索的函数—》Ctrl+F
在这里插入图片描述

二、模电常识(白话随便版)

一、名词解释

(1)VCC:
(2)GND: 负/接地
(3)GPIO: 引脚
(4)Set: 高电平
(5)ReSet: 低电平

(6)
无符号字符型:Unsigned char 。HAL库符号:Uint8_t。范围:255
无符号整型:Unsigned int。HAL:Uint16_t。范围:65535
无符号长整形:Unsigned long 。HAL:Uint32_t。范围:2^32-1

(7)
// mos管(电压)
三极管(电流):
pnp:低电压导通,emitter箭头指向Base.
npn:高电压导通,Base—>Emitter

(8)比较器(运放): 通过比较输入信号的电压大小来产生输出信号。
(9)双稳态触发器: 是一种具有记忆功能的逻辑单元电路。它能储存一位二进制码。它有两个稳定的工作状态,在外加信号触发下电路可从一种稳定的工作状态转换到另一种稳定的工作状态。

(10)ne555: 通用时基电路。通过改变外部电容器和电阻的数值来控制周期(T=0.693(Ra+2Rb)C)和占空比( D=(Ra+Rb)/(Ra+2xRb) ),实现各种脉冲波形的产生。
频率F=1/T。

(11)PCB: 印刷电路板

二、基础门电路

1.原理图:
在这里插入图片描述
软件:嘉立创EDA
(2)连线尽量不走直角

在这里插入图片描述

三、STLINK点灯操作

1.配置寄存器进行点灯

#include "stm32f10x.h"                  // Device header
int main(void)
{//配置寄存器进行点灯(需要查手册,)RCC->APB2ENR=0x00000010;//打开GPIOC时钟GPIOC->CRH=0x00300000;//PC13口的模式GPIOC->ODR=0x00002000;//输出数据:全零(亮),2(灭)while(1){}
}

2.使用库函数进行点灯

#include "stm32f10x.h"                  // Device header
int main(void)
{//使用库函数进行点灯//1.配置外设时钟//可以右键-》GO To Definition...查看定义RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);//2.配置端口模式//结构体GPIO_InitTypeDef CPIO_InitStructure;CPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//模式CPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;//端口CPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度GPIO_Init(GPIOC,&CPIO_InitStructure);//3.设置端口高低电平(二选一进行测试)GPIO_SetBits(GPIOC,GPIO_Pin_13);//高电平(灭)GPIO_ResetBits(GPIOC,GPIO_Pin_13);//低电平(亮)while(1){}
}

四.GPIO

(1)General PurPose Input Output:通用输入输出口。
(2)引脚电平:0V~3.3V。

1.LED闪烁

在这里插入图片描述
相关的用法:

	//将指定端口设置为高电平void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//将指定端口设置为低电平void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//根据第三个参数的值设置指定端口void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);//可以同时对16个端口进行写入操作void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

代码:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void)
{//RCC中APB2外设时钟控制函数(右键可看参数)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//引脚GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度GPIO_Init(GPIOA,&GPIO_InitStructure);//GPIO_SetBits(GPIOA,GPIO_Pin_0);//GPIO_ResetBits(GPIOA,GPIO_Pin_0);//GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//LED亮//GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);//LED灭while(1){//方法2GPIO_ResetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);GPIO_SetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);//方法1.2GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)0);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1);Delay_ms(500);//方法1GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);Delay_ms(500);//毫秒延时函数:Delay文件中GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);Delay_ms(500);}
} 

补充:
(1)复用推挽输出:由片上外设控制,高电平接VDD,低电平接VSS。

(2)复用开漏输出:由片上外设控制,高电平为高组态,低电平接VSS。

4.按键控制LED

(1)用法:
读取按键值:

    //用来读取输入数据寄存器某一个端口的输入值(返回值代表这个端口的高低电平)uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//用来读取整个输入寄存器(唯一参数用来指定外设)uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);//用来读取输出数据寄存器某一个位uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//用来读取整个输出寄存器uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

注:

内容来自b站STM32入门教程-江协科技,黑马程序员,百度。
b站有视频,还有江协科技博主分享的全套资料,感兴趣可以去b站学习。

http://www.lryc.cn/news/325241.html

相关文章:

  • 举4例说明Python如何使用正则表达式分割字符串
  • Java 中的 Math. round(-1. 5) 等于多少?
  • MFC界面美化第三篇----自绘按钮(重绘按钮)
  • 设计模式|工厂模式
  • CHAT~(持续更新)
  • linux系统------------Mysql数据库介绍、编译安装
  • 文件操作3
  • 算法D57 | 动态规划17 | 647. 回文子串 516.最长回文子序列 动态规划总结篇
  • go的限流
  • 补充--广义表学习
  • 【笔记】KaiOS SPN显示逻辑
  • Visual Basic6.0零基础教学(4)—编码基础,数据类型与变量
  • VPCFormer:一个基于transformer的多视角指静脉识别模型和一个新基准
  • Android 图形渲染和显示系统关系
  • 3.C++:类与对象(下)
  • iOS开发之SwiftUI
  • 2024-简单点-pandas
  • 面试笔记——Redis(双写一致、持久化)
  • 【漏洞复现】科立讯通信指挥调度平台editemedia.php sql注入漏洞
  • css的active事件在手机端不生效的解决方法
  • 00. 认识 Java 语言与安装教程
  • 数据结构-栈-004
  • (第76天)XTTS 升级:11GR2 到 19C
  • 修改网站源码,给电子商城的商品添加图片时商品id为0的原因
  • ffmpeg开发异步AI推理Filter
  • python与excel第七节 拆分工作簿
  • JS08-DOM节点完整版
  • 【python】python3基础
  • 计算机三级网络技术 选择+大题234笔记
  • 智能合约 之 ERC-721