自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 RT_thread(八)信号量的使用

IPC在嵌入式系统中运行的代码主要包括线程和ISR,在它们的运行过程中,它们的运行步骤有时需要同步(按照预定的先后次序运行),它们访问的资源有时需要互斥(一个时刻只允许一个线程访问资源),它们之间有时也要彼此交换数据。这些需求,有的是因为应用需求,有的是多线程编程模型带来的需求。操作系统必须提供相应的机制来完成这些功能,我们把这些机制统称为进(线)程间通信(Internal Process Communication IPC),RT-Thread中的IPC机制包括信号量、互斥量、事件、邮箱

2021-08-28 13:59:01 672

原创 RT_thread(七)临界区保护

临界资源临界资源是指一次仅允许一个线程访问的共享资源。它可以是一个具体的硬件设备,也可以是一个变量、一个缓冲区。不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它们进行访问临界区uint32_t value=0;void thread1_entry(void * para) void thread2_entry(void * para) {

2021-08-28 13:58:16 576

原创 RT-Thread(三)线程的创建

线程的组成RT-Thread 中,线程由三部分组成:线程代码(入口函数)、线程控制块、线程堆栈线程代码void thread_entry(void *parameter){ while(1) { /* 等待事件的发生*/ . . /* 处理事件*/ } }

2021-08-28 13:57:44 1252

原创 RT_thread (六) 空闲线程及两个常用的钩子函数

空闲线程钩子函数空闲线程是一个比较特殊的系统线程,它具备最低的优先级。当系统中无其他就绪线程可运行时,调度器将调度到空闲线程。空闲线程还负责一些系统资源回收以及将一些处于关闭态的线程从线程调度列表中移除的动作空闲线程在形式上是一个无线循环结构,且永远不被挂起。在RT-Thread实时操作系统中空闲线程向用户提供了钩子函数,空闲线程钩子函数可以让系统在空闲的时候执行一些非紧急事务,例如系统运行指示灯闪烁, CPU使用率统计等等。设置钩子函数rt_err_t rt_thread_idle

2021-08-28 13:56:17 714

原创 STM32—— DMA介绍

1.1 DMA结构框图DMA 控制器独立于内核,属于一个单独的外设,结构比较简单,从编程的角度来看,我们只需掌握结构框图中的三部分内容即可。如图:(大家也可以查看《STM32F10x中文参考手册》-10 DMA控制器(DMA)章节内容)(1)标号1:DMA请求如果外设要想通过 DMA 来传输数据,必须先给 DMA 控制器发送 DMA请求, DMA收到请求信号之后,控制器会给外设一个应答信号,当外设应答后且 DMA 控制器收到应答信号之后,就会启动 DMA 的传输,直到传输完毕。根据前面介

2021-08-28 13:54:50 2497

原创 STM32——pwm控制LED

PWM相关配置及介绍pwm.c#include "pwm.h"/******************************************************************************** 函 数 名 : TIM3_CH1_PWM_Init* 函数功能 : TIM3通道1 PWM初始化函数* 输 入 : per:重装载值 psc:分频系数* 输 出 : 无**********

2021-08-25 19:10:16 2149

原创 STM32——待机唤醒实验

1.STM32待机模式介绍1.1 STM32低功耗模式介绍很多单片机具有低功耗模式,比如MSP430、STM8L等,我们的STM32 也不例外。默认情况下,系统复位或上电复位后,微控制器进入运行模 式。在运行模式下,HCLK 为CPU提供时钟,并执行程序代码。当 CPU 不 需继续运行(例如等待外部事件)时,可以利用多种低功耗模式来节省 功耗。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等 条件,选定一个最佳的低功耗模式。当然在运行模式下,也可以通过如下方式降低功耗:(1)降低系统时钟速

2021-08-25 19:09:29 961

原创 STM32学习—定时器中断TIME

定时器中断TIME通用定时器配置步骤(1)使能定时器时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//使能TIM4时钟(2)初始化定时器参数,包含自动重装值,分频系数,计数方式等voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);typedef struct{ uint16_t TIM_Prescaler;

2021-08-25 19:07:44 617

原创 STM32备忘——GPIO的几种模式

GPIOGPIO的综合描述讲述的内容比较详细

2021-08-25 19:07:09 2957

原创 STM32学习—系统中断

中断配置步骤要使用中断我们就需要先配置它,通常都需经过这几步:(1)使能外设某个中断(2)设置中断优先级分组,初始化 NVIC_InitTypeDef 结构体typedef struct{ uint8_t NVIC_IRQChannel; //中断源 uint8_t NVIC_IRQChannelPreemptionPriority; //抢占优先级 uint8_t NVIC_IRQChannelSubPriority; //响应

2021-08-25 19:06:39 92

原创 STM32学习—外部中断EXTI

外部中断配置步骤要使用外部中断我们就需要先配置它,通常都需经过这几步:(EXTI相关库函数在stm32f10x_exti.c和stm32f10x_exti.h文件中)(1)使能IO口时钟,配置IO口模式为输入(2)开启 AFIO 时钟,设置 IO 口与中断线的映射关系 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_

2021-08-25 19:05:54 911

原创 串口USART的学习

串口USART的配置步骤具体步骤如下:(USART相关库函数在stm32f10x_usart.c和stm32f10x_usart.h文件中)。(1)使能串口时钟及GPIO端口时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOA时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能USART1时钟(2)GPIO端口模式设置,设置串口对应的引脚为复用功能GP

2021-08-25 19:05:04 186

原创 STM32的按键扫描

key.c#include "key.h"#include "SysTick.h"/******************************************************************************** 函 数 名 : KEY_Init* 函数功能 : 按键初始化* 输 入 : 无* 输 出 : 无******************************************

2021-08-25 19:04:29 3161 1

原创 STM32学习—systick系统定时器

SysTick定时器配置步骤SysTick定时器的操作可以分为 4 步:(1)设置SysTick定时器的时钟源。(2)设置SysTick定时器的重装初始值(如果要使用中断的话,就将中断使能打开)。(3)清零SysTick定时器当前计数器的值。(4)打开SysTick定时器。SysTick_Init()函数:void SysTick_Init(u8 SYSCLK) //SYSCLK默认系统时钟是72M{ SysTick_CLKSourceConfig(SysTick_CLKSource_H

2021-08-25 19:03:52 1170

原创 STM32第一次学习——使用库函数点亮LED灯

使用库函数点亮LED灯led.h#ifndef _LED_H#define _LED_H#include "stm32f10x.h"#define LED_PORT_RCC RCC_APB2Periph_GPIOC#define LED_PIN GPIO_Pin_0#define LED_PORT GPIOCvoid LED_Init(void);#endifled.c#include "led.h"void LED_Init(){GPIO_InitT

2021-08-25 19:02:36 559

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除