STM32
文章平均质量分 70
STM32入门基础
「已注销」
这个作者很懒,什么都没留下…
展开
-
UCOSIII任务的创建和任务切换的实现
任务的创建和任务切换的实现文章目录任务的创建和任务切换的实现多任务系统的存在意义什么是任务裸机系统中多任务系统中创建任务的流程STEP 1 定义任务的堆栈STEP 2 定义任务函数STPE 3 定义任务控制块TCBSTEP 4 实现任务创建的函数任务添加就绪列表OSRdyList[]多任务系统的存在意义让CPU几乎同时在运行多件任务。什么是任务裸机系统中系统的主体就是main函数内的各种函数。多任务系统中根据功能分割成一个个独立且无法返回的函数,称为任务或者线程。创建任务的流程STEP原创 2021-03-08 16:58:14 · 501 阅读 · 0 评论 -
使用固件库配置HSE系统时钟,并使MCO1/2输出系统时钟
16-使用HSE配置系统时钟,并使用MCO输出监控系统时钟(3/4)一、固件库配置系统时钟HSE(一)配置流程复位RCCHSE 外部高速时钟使能等待外部高速时钟设置成功选择电压调节配置系统时钟配置main PLL使能main PLL等待main PLL 启动成功(二)配置代码HSE 系统时钟配置函数void HSE_SetSysClock( uint32_t PLLM, uint32_t PLLN, uint32_t PLLP, uint32_t PLLQ){ ErrorS原创 2020-12-15 17:11:41 · 786 阅读 · 0 评论 -
KEIL5 (MDK) 文件outline 上有红色的叉
现象原因MDK启动动态语法检查。解决关闭动态语法检查Edit–>Configuration–>Text Completion --> 取消 Enable选项原创 2020-12-08 23:22:02 · 1388 阅读 · 0 评论 -
[课程-014位带操作——GPIO的输入和输出控制]
一、概念性什么是位带操作 位带操作就是可以单独对一个比特位读和写。在51单片机中,通过sbit关键字来实现位定义。对于STM32位带区和位带别名区的理解 STM32里没有这样的关键字,但可以通过位带别名区来实现。 想要控制这些bit,就可以通过访问和控制位带别名区的一个32bit的字(因为stm32单片机以32bit为单位操作最为高效),来控制位带区内的任意一位。一个位带区的位对应位带别名区的四个字节(32bit)。SRAM存储代码的区域。二 、位带区和位带别名区的地址转换原创 2020-08-06 18:05:02 · 586 阅读 · 1 评论 -
[课程-013GPIO输入——按键检测]
一、按键检测原理开发板上的按键1是接在了GPIOA->IDR寄存器上了,只要通过读取其寄存器状态即可。二、 代码分析首先构建bsp_key.h和bsp_key.c两文件于/USER/KEY文件夹内;在Keil MDK 工程里导入文件路径bsp_key.h文件主要写一些方便以后修改方便的、看起来简洁的宏定义,以及#incude一些必要的头文件、写在.c文件里的函数声明#ifndef __BSP_KEY_H__#define __BSP_KEY_H__#include原创 2020-08-06 18:03:54 · 623 阅读 · 0 评论 -
[课程-010-1]初识STM32固件库——我们认为管件库应该是什么样子的
一、STM32固件库文件分析汇编编写的启动文件startup_stm32f10x_hd.s设置堆栈指针设置PC指初始化中断向量表配置系统时钟对用C库函数 __main最终去到C的世界时钟配置文件system_stm32f10x.c:将外部时钟HSE=8M,经过PLL倍频为72M外设相关的(xx:GPIO UART I2C SPI FSMC)stm32f10x.h:实现内核之外的外设寄存器映射stm32f10x_xx.h存放外设的初始化结构体、外设初始化结构体原创 2020-08-06 18:03:35 · 248 阅读 · 0 评论 -
[课程-009-4]自己写库—构件库函数雏形—总结及如何调高代码的可移植性
一、巧妙使用宏定义(一)现有问题上一节中,使用了包含有引脚、模式、速度的结构体变量的配置信息,但是移植性不强,移植后改动的地方较多,上一节代码如下: RCC->APB2ENR|= ((1)<<3); //打开GPIO端口的时钟 /* 填写配置信息——给结构体中的成员赋值。 */ GPIO_InitStructure_G.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure_G.GPIO_Mode = GPIO_Mode_OUT_PP;原创 2020-08-06 18:01:50 · 169 阅读 · 0 评论 -
[课程-009-3]自己写库—构件库函数雏形—编写GPIO初始化结构体和初始化函数
[课程-009-3]自己写库—构件库函数雏形—编写GPIO初始化结构体和初始化函数寄存器赋值时优化,让人晦涩难懂的二进制/十六进制数值自建结构体变量,编写初始化函数;方便初始化GPIO 引脚的各种模式。一、初始化端口(举例:配置和控制GPIOB)原来的点亮led的初始化GPIO端口代码 //原来的点亮led的初始化GPIO端口代码 RCC->APB2ENR|= ((1)<<3);//打开 GPIO 端口的时钟 //配置IO口为输出 GPIOB->CRL |原创 2020-08-06 18:01:27 · 451 阅读 · 0 评论