博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DAM的使用结合串口和中断以及GPIO。
阅读量:6434 次
发布时间:2019-06-23

本文共 1509 字,大约阅读时间需要 5 分钟。

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。我现在很困,等到有时间在进行记录。不会拖 的太长,我怕自己记不住一些东西、

加油!

 

转载于:https://www.cnblogs.com/qq877262836/p/6617210.html

你可能感兴趣的文章
编码列表
查看>>
eigrp 配置
查看>>
谈一谈 redis 集群
查看>>
concurrent包
查看>>
分区和格式化硬盘
查看>>
在Linux下调试Python代码的各种方法
查看>>
centos7塔建MQ服务器
查看>>
Peer authentication failed for user
查看>>
超强的.NET图像工具包VintaSoftImaging.NET SDK更新至v8.6丨75折优惠
查看>>
阿里云上Kubernetes集群联邦
查看>>
我的Git忽略文件
查看>>
洛谷2219:[HAOI2007]修筑绿化带——题解
查看>>
监控webservice信息
查看>>
a标签中href=""的几种用法(转)
查看>>
python
查看>>
ubuntu 常用生产环境部署配置测试调优
查看>>
【JS】//将中文逗号转换为英文逗号
查看>>
在VS2012中实现Ext JS的智能提示太简单了
查看>>
Extnet Direct 提交后台事件文件下载设置
查看>>
邻接矩阵与二叉排序树
查看>>