DAM的使用结合串口和中断以及GPIO。

当我学到DMA这章的时候就意味着我已经学完了,GPIO里的LED,按键,还有就是串口发送数据。

那么下面就来总结下前段时间所学的知识(因为接下来有断时间我是没有时间去学习STM32)

首先来看下我最先接触的LED流水灯

对于流水灯。首先我我们知道。点亮流水灯就是有电流通过LED灯。而每个流水灯 就是接在GPIO口上的,

然后我们就会有个关于GPIO的结构体打开结构体

然后我们就来配置GPIO口,因为我的板子上对应的LED灯的GPIO端口是PA0,PF7,PF8。

所以我们对三个口进行配置。

由上可以看到GPIO口的配置有

1.首先开启两个端口的外设时钟。

2.然后设置输出模式。

3.然后就是设置输出输出速率。

4.接着就是选择输出端口,

5.最后是开始使用库函数GPIO_Init()来初始化端口,就是把刚才配置的信息配置给每个端口。

因为按键也是通过GPIO口来控制的。所以就会有

然后就是有个LED灯翻转用到了位带操作,这样就可以直接用到定义端口。网上

有关于位带操作的说明。

下个就是中断里面,这里就记下我自己容易犯下的错误,

1.配置好中断配置。下面以DMA发送完成中断进行演示。

void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/* Configure the NVIC Preemption Priority Bits */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

/* Enable the USARTy Interrupt */
NVIC_InitStructure.NVIC_IRQChannel =DMA1_Channel4_IRQn ;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}

2.这里注意的就是要在所在的.c的.h 文件里去定义void NVIC_Config(void)。

这样才能使用 void NVIC_Config(void)函数,记住两个void都不能省。

3.再u就是怎样产生中断的。这里我们用到的是DMA发送完成使用中断。所以用到的就是

这里可以记住一个函数XXX _ITConfig()

这是设置外设中断的函数,如接收中断和发送完成中断,这就可以产生中断,然后就是进入到中断服务函数,

4.就是配置中断服务函数,对于中断函数名的取法在上篇随笔中已经介绍的有,

这里就是说下在本程序中断函数中需要做的就是判断中断标志,然后执行想要的函数,

最重要的就是使用清除中断标志位。这里就用到了一个固件库函数XXX_ClearFlag()和,XXX_ClearITPendingBit().

为了谨慎使用,建议就是中断时使用XXX_ClearITPendingBit(),在非中断的时候使用XXX_ClearFlag()。

至此,看完了。中断,和GPIO。对于串口,DMA。我现在很困,等到有时间在进行记录。不会拖 的太长,我怕自己记不住一些东西、

加油!

DAM的使用结合串口和中断以及GPIO。的更多相关文章

  1. S3C2440串口及其中断系统详解

    个独立异步串行I/O(SIO)端口,每个都可以是基于中断或基于DMA模式的操作.换句话说,UART可以通过产生中断或DMA请求来进行CPU和UART之间的数据传输. 字节的FIFO给发送和接收. 字节 ...

  2. STM32F072从零配置工程-基于HAL库的串口UART中断配置

    先上一个采用串口直接传输的Demo: 此处的思路是完全采用HAL库来实现的,核心是运用HAL_UART_Transmit_IT和HAL_UART_Receive_IT两个函数来实现的,可以作为一个De ...

  3. Stm32使用串口空闲中断,基于队列来接收不定长、不定时数据

    串口持续地接收不定长.不定时的数据,把每一帧数据缓存下来且灵活地利用内存空间,下面提供一种方式供参考.原理是利用串口空闲中断和DMA,每当对方发来一帧完整的数据后,串口接收开始空闲,触发中断,在中断处 ...

  4. .NET 串口通信中断接收,包含0X1A(作为EOF)

    .NET串口通信中将`0X1A`当做EOF处理,.NET接收到EOF会触发一次接收中断,此时事件形参`SerialDataReceivedEventArgs`值为枚举 `Eof`,其他为`Chars` ...

  5. STM32串口空闲中断

    串口初始化 #include "usart5.h" vu16 UART5_RX_STA=0; char UART5_RX_BUF[UART5_REC_LEN]; u8 UART5_ ...

  6. S5PV210 串口实验(中断方式)

    结合之前的串口实验(轮询方式)与中断体系分析,我们来做下中断方式的串口接收实验. start.S .global _start .global IRQ_handle _start: /* 关 Watc ...

  7. Zynq-7000 FreeRTOS(二)中断:串口Uart中断

    总结Zynq-7000器件的PS上的串口中断,为FreeRTOS中断实验做准备.

  8. 创龙TMS320C6748开发板串口和中断学习笔记

    1. 硬件上,底板有2个串口,UART1和UART2(使用了MAX3232电平转换芯片),其中UART2也可以转RS485的. 2. 看下数据手册部分,不过一直不理解过采样的意思,16字节的FIFO ...

  9. STM32F0_HAL库驱动描述——基于F1的USART串口IT中断实现解析

    从原子F103 HAL库基础串口例程来看HAL程序结构: 从main函数开始,首先是HAL库两个函数的初始化: HAL_Init(): Stm32_Clock_Init(RCC_PLL_MUL9); ...

随机推荐

  1. 每天一个linux命令31)--chown命令

    chown将 指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID,组可以使组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷 ...

  2. 每日java基础知识(01)

    1.java语言的主要特点. 跨平台性:一个应用可以不经过修改,就直接在不同的平台上运行. 面向对象:java是面向对象的语言,可以使用对象封装事物的属性和行为,可以使用面向对象的思想进行分析设计,并 ...

  3. 关于margin

    ----W3School -----margin CSS 边距属性定义元素周围的空间.通过使用单独的属性,可以对上.右.下.左的外边距进行设置.也可以使用简写的外边距属性同时改变所有的外边距. 这个简 ...

  4. [转载]解决win10 VC++6.0 应用程序无法正常运行 0xc0000142

    本文转载自http://blog.csdn.net/w_9449/article/details/52864135 转载请申明哦,其实我发现自从我在贴吧发了帖子后,就冒出了不少帖子.经验.当然方法和我 ...

  5. Python2.7 xlwt安装 No module named future.builtins

    遇到的坑 事情是这样的,因为项目要使用Python配合软件集成时的自动化,以前遗留的Python代码已经out of date啦,只能亲自update,所以必须搭建Python环境,使用2.7版本(我 ...

  6. 第二章 mac上运行第一个appium实例

    一.打开appium客户端工具 1      检查环境是否正常运行: 点击左边第三个图标 这是测试你环境是否都配置成功了 2      执行的过程中,遇到Could not detect Mac OS ...

  7. 【2-26】string/math/datetime类的定义及其应用

    一string类 (1)字符串.Length    Length作用于求字符串的长度,返回一个int值 (2)字符串.TrimStart();  TrimStart():可删除前空格,返回一个stri ...

  8. [Bnuz OJ]1176 小秋与正方形

    传送门 问题描述 某天,acm的小秋拿到了一张很大很大的纸.他现在打算把它撕成正方 形.但是他没有任何工具,没有尺子,所以他尝试一种有趣的方法切分矩形.假设这是一个a*b的矩形(a>b),那么小 ...

  9. 第一个小程序:helloWord

    public class HelloWorld {     public static void main(String []args){          System.out.println(&q ...

  10. 从零开始学JavaWeb

    引言   记得上学时,有位导师说过一句很经典的话:"编程语言只是工具,最重要的是掌握思想." 笔者一直主要从事.net领域的开发工作.随着工作阅历的丰富,越来越深刻的理解当年导师说 ...