Keil笔记(缘更)

一、使用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
在这里插入图片描述

二、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)
	{
	}
}

3.GPIO

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

1.LED闪烁

在这里插入图片描述
代码:

#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);
	
/*	//将指定端口设置为高电平
	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);
*/
	
	//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)
	{
		//方法2
		GPIO_ResetBits(GPIOA,GPIO_Pin_0);
		Delay_ms(500);
		GPIO_SetBits(GPIOA,GPIO_Pin_0);
		Delay_ms(500);
		
		//方法1.2
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)0);
		Delay_ms(500);
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1);
		Delay_ms(500);
		
		//方法1
		GPIO_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。

注:

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

相关推荐

  1. 【持】python数据处理-学习笔记

    2024-03-17 10:30:05       49 阅读
  2. MySQL学习笔记(持续行ing)

    2024-03-17 10:30:05       36 阅读
  3. 随心笔记,第四

    2024-03-17 10:30:05       19 阅读
  4. 画像 api数据接口

    2024-03-17 10:30:05       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 10:30:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 10:30:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 10:30:05       87 阅读
  4. Python语言-面向对象

    2024-03-17 10:30:05       96 阅读

热门阅读

  1. C语言实现选择排序算法

    2024-03-17 10:30:05       45 阅读
  2. Lua-Lua与C的交互3

    2024-03-17 10:30:05       39 阅读
  3. token的详解与使用

    2024-03-17 10:30:05       37 阅读
  4. python 直方图

    2024-03-17 10:30:05       46 阅读
  5. 动态规划 完全背包问题 携带研究材料

    2024-03-17 10:30:05       38 阅读
  6. 数据仓库的设计开发应用(三)

    2024-03-17 10:30:05       41 阅读
  7. 52. 携带研究材料(第七期模拟笔试)

    2024-03-17 10:30:05       36 阅读
  8. kotlin flow sample的用法

    2024-03-17 10:30:05       36 阅读