stm32 freertos 之串口中断

发布者:advancement3最新更新时间:2019-10-08 来源: eefocus关键字:stm32  freertos  串口中断 手机看文章 扫描二维码
随时随地手机看文章

一、中断处理函数


void USART1_IRQHandler(void)

{

BaseType_t xHigherPriorityTaskWoken;

   xHigherPriorityTaskWoken = pdFALSE;

u8 cChar;

if(USART_GetITStatus (USART1,USART_IT_RXNE)!=RESET)

{

cChar=USART_ReceiveData(USART1);

xQueueSendToBackFromISR (xQueueRx,&cChar,&xHigherPriorityTaskWoken);

portYIELD_FROM_ISR(xHigherPriorityTaskWoken);

}

}

二、中断向量表配置


void NVIC_Configuration(void)

{

NVIC_InitTypeDef  NVIC_InitStructure;

NVIC_PriorityGroupConfig (NVIC_PriorityGroup_4);

NVIC_InitStructure .NVIC_IRQChannel =USART1_IRQn  ;

NVIC_InitStructure .NVIC_IRQChannelPreemptionPriority =6;

NVIC_InitStructure .NVIC_IRQChannelCmd =ENABLE ;

NVIC_Init(&NVIC_InitStructure );

 

}

三、串口接收任务创建


xQueueHandle xQueueRx;

void vPC_Communication_Task(void *pvParameters)

{

BaseType_t xHigherPriorityTaskWoken;

xHigherPriorityTaskWoken = pdFALSE;

u8 rx=0;

xQueueRx=xQueueCreate(20,sizeof(u8));

while(1)

{

if(xQueueReceiveFromISR(xQueueRx,&rx,&xHigherPriorityTaskWoken))

{

printf("%crn",rx);

}

vTaskDelay(1000/portTICK_RATE_MS );

}

 

}

四、主函数


int main(void)

{

    BSP_INIT();

 

    xTaskCreate(vLED_Task ,"led_task",50,NULL,1,NULL);

    xTaskCreate(vPC_Communication_Task,"vPC_Communication_Task",500,NULL,2,NULL);

    vTaskStartScheduler();

}


关键字:stm32  freertos  串口中断 引用地址:stm32 freertos 之串口中断

上一篇:STM32F407上调试freeRTOS问题
下一篇:stm32f407 adc的dma中断方式

推荐阅读最新更新时间:2024-11-13 15:03

基于stm32的异步电机反嵌绕组检测方法
  1.引言   电机是在工业生产过程中普遍使用的装置,电机的故障往往会带来严重的后果与损失。定子绕组是三相异步电动机的主要组成部分,也是电动机最容易损坏而造成故障的部件。异步电机在生产过程中,由于生产工人的失误,有可能发生定子绕组反嵌的现象,发生电动机启动困难,三相电流严重失衡且电流急剧上升,接反元件的那一组绕组中的电流更大,电动机发生异常响声并剧烈振。如果不及时断电停机,电动转速下降,机定子绕组很快会被烧毁。为避免造成更大的损失,需要及时检出。   现有的检测方法在实际应用中,往往在生产应用中需要拆除电机,或者等到电机产生故障时才能够发现绕组错误。检测方法主要是在电机出现故障后,将电机定子取出,接入直流电源后,使用磁针
[电源管理]
基于<font color='red'>stm32</font>的异步电机反嵌绕组检测方法
stm32单片机检测12V电路
1.先通过采样电路,分压得到3.3V的电压 2.然后使用电压跟随器,将3.3V的大阻抗信号电压变为3.3V的小阻抗驱动电压,此电压直接可以接到stm32的ADC引脚 3.注意:运放芯片LM358的供电电压一定要比3.3V大3~4V左右,这样才能使得跟谁的电压能够达到3.3v 12V衰减到3.3V的电路如下: 然后单片机根据才几点到的数字,反推算回去,看是多少V
[单片机]
<font color='red'>stm32</font>单片机检测12V电路
什么是STM32寄存器
STM32 长啥样 芯片正面是丝印,ARM 应该是表示该芯片使用的是ARM 的内核,STM32F103VET6是芯片型号,后面的字应该是跟生产批次相关,最上面的是ST 的LOGO。芯片四周是引脚,左下角的小圆点表示1 脚,然后从1 脚起按照逆时针的顺序排列(所有芯片的引脚顺序都是逆时针排列的)。开发板中把芯片的引脚引出来,连接到各种传感器上,然后在STM32 上编程(实际就是通过程序控制这些引脚输出高电平或者低电平)来控制各种传感器工作,通过做实验的方式来学习STM32 芯片的各个资源。开发板是一种评估板,板载资源非常丰富,引脚复用比较多,力求在一个板子上验证芯片的全部功能。 芯片里面有什么 我们看到的STM3
[单片机]
什么是<font color='red'>STM32</font>寄存器
STM32速成笔记(8)—DMA
一、什么是DMA DMA全程Direct Memory Access,即直接存储器访问。简单来讲,它的功能是把数据从一个地址搬运到另一个地址。通常有三个传输方向,分别是内存到内存,内存到外设和外设到内存。 DMA示意图 二、DMA有什么作用 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。 比如在串口接收或者发送时可以直接利用DMA将接收内容直接搬运到接收数组。或者利用DMA将准备发送的数据搬运到发送的缓冲区。再或者利用DMA把数据搬运到特定的地址,或者从特定的地址利用DMA搬运数据出来。总而言之,在平时的
[单片机]
<font color='red'>STM32</font>速成笔记(8)—DMA
stm32位带操作,实现51类似的GPIO控制功能
新建一个system.h文件,包含以下内容 #ifndef _system_H #define _system_H #include stm32f10x.h //位带操作,实现51类似的GPIO控制功能 //具体实现思想,参考 CM3权威指南 第五章(87页~92页). //IO口操作宏定义 #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF) 5)+(bitnum 2)) #define MEM_ADDR(addr) *((volatile unsigned long *)(addr)) #define BIT_ADDR(ad
[单片机]
STM32中断中断优先级理解
  在嵌入式系统开发过程中,不可避免的会和“中断”打交道。很多初学者对中断的理解不深,往往是看到中断绕着走。其实不然,费点时间搞懂中断能解决不少问题。   中断英文“Interrupt”,字面很好理解,就是打断的意思。在程序中“Interrupt”打断的自然也是程序。举个例子,有一个遥控的自动避障小车,小车在向前跑的过程中程序一直监测周围环境,实现避障功能,这个时候你想遥控小车停个三分钟,就要用到中断了,也就是打断原有的“监测环境——避障”程序流程。打断的目的就是执行“别跑啦,停下来歇歇”这个程序,我们称中断之后执行的程序为“中断服务函数”。一般情况下,中断服务函数执行完后(小车休息三分钟,或者干其他的事情完事后),会清理一下中断
[单片机]
STM32学习——低功耗模式
芯片型号 : STM32F10X 参考资料:STM32F10XXX使用手册 朱友鹏单片机完全学习课程 在STM32的电源管理系统中,软件工程师需要关注的是低功耗模式的选择和实现。在设计产品时会出现如使用电池供电需要较低功耗的情景,此时就需要使用低功耗模式。 CPU不需继续运行的时候就是执行无意义代码时(如空循环)。CPU从低功耗模式中被唤醒后,还需一定时间才能进入正常工作状态,这段时间就是低功耗模式的启动时间,低功耗模式都要事先选好唤醒源和唤醒事件,否则不能正常工作。低功耗模式的选择标准就是以上三者,结合这三者以选择合适的低功耗模式。 睡眠(SLEEP)模式:CPU停止工作但外设仍然运行。唤醒源为所有中断。 停
[单片机]
<font color='red'>STM32</font>学习——低功耗模式
意法半导体量产STM32 F0系列入门级MCU
意法半导体(ST)5月15日在北京媒体沟通会上宣布,开始量产基于ARM Cortex-M0处理器内核的入门级STM32 F0系列32位MCU。其适于工业控制器、家庭自动化、打印机和白色家电等应用。   STM32 F0的主要特性包括:①工作频率48MHz时,性能为38DMIPS,独立第三方评测机构的CoreMark评分为68;24MHz时,22DMIPS,CoreMark39。11项外设映射在5通道的DMA,结合总线矩阵,使闪存中执行代码与DMA数据传输同步操作。   ②四个低功耗模式包括5.3μA停止模式,实时时钟运行的2.8μA待机模式,电池供电模式下且实时时钟运行时0.4μA。1.8V/2-3.6V电源电压。功耗效率如图
[模拟电子]
意法半导体量产<font color='red'>STM32</font> F0系列入门级MCU
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved