Keil笔记(缘更)

news/2024/4/27 15:33:52

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);

五、通信接口

名称引脚双工时钟电平设备
USARTTX、RX全双工异步单端点对点
I2CSCL、SDA半双工同步单端多设备
SPISCLK、MOSI、MISO、CS全双工同步单端多设备
CANCAN_H、CAN_L半双工异步差分多设备
USBDP、DM半双工异步差分点对点

注:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11086.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Matlab从入门到精通课程

教程介绍 MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 学习地址 链接:https://pan.baidu.com/s/1PxGarBwQusMzwPVqcE…

LeetCode:2642. 设计可以求最短路径的图类(SPFA Java)

目录 2642. 设计可以求最短路径的图类 题目描述: 实现代码与解析: SPFA 原理思路: 2642. 设计可以求最短路径的图类 题目描述: 给你一个有 n 个节点的 有向带权 图,节点编号为 0 到 n - 1 。图中的初始边用数组 e…

【Word自动化办公】使用python-docx对Word进行操作

目录 一、环境安装 二、文档各组成结构获取 2.1 组成结构讲解 2.2 段落run对象的切分标准 三、获取整篇文档内容 四、写入指定样式的数据 4.1 通过add_paragraph与add_run参数添加样式 4.2 单独设置文本样式 五、添加标题 六、换行符&换页符 七、添加图片数据 …

物联网数据报表分析

随着物联网技术的迅猛发展,越来越多的企业开始将物联网解决方案应用于各个领域,从提高生产效率到优化用户体验,物联网都发挥着至关重要的作用。然而,如何有效地分析和管理物联网产生的海量数据,成为企业面临的挑战之一…

Gavin Wood 精彩演讲|安全灵活 JAM 链,打造去中心化多核计算机

Polkadot 年度开发者大会 sub0 Asia 近期在泰国曼谷正式落幕。面对区块链行业的激烈竞争,Polkadot 创始人 Gavin Wood 在演讲中说明将如何利用 Polkadot 2.0 与 JAM 链带来新的技术创新,推动生态持续发展。 Polkadot 将推一个名为 JAM 链的新网络。JAM …

智慧园区楼宇AI解决方案

背景 人工智能对于人类的影响要比工业革命发生的速度快10倍,规模大 300倍,影响几乎大3000倍 - 麦肯锡全球研究院;2017年7月20日,国务院印发《新一代人工智能发展规划》,首次把人工智能发展上升为国家战略层面,全面布局面向2030年的中国人工智能发展整体规划;中美同时进…