历史上的今天
今天是:2024年08月26日(星期一)
2018年08月26日 | STM32 寄存器点灯介绍
2018-08-26 来源:eefocus
1.说在前面:
1.对于stm32最初的认识是基于库函数的,调用一堆库函数来使得问题得到解答,但是深究库函数,最终还是对寄存器的配置
2.寄存器:就是用来存储数据的,事实上,对stm32的控制就是对32位寄存器的修改;
2.GPIO口寄存器的介绍
注:一组io口是由7个寄存器进行配置,所以
1.GPIOx_CRL:控制寄存器,控制寄存器的低16位
2.GPIOx_CRH:控制寄存器,控制寄存器的高16位
3.GPIOx_IDR:输入寄存器;(通过位选设置高低电平)
4.GPIO_ODR:输出寄存器;(通过位选设置高低电平)
5.GPIO_BSRR:端口位设置和清除寄存器
6.GPIO_BRR:端口位清除寄存器
7.GPIO_LCKR:端口位配置锁存器(不常用)
这几种寄存器的配置在前面的笔记中有着详细的介绍,这里就不赘述
https://blog.csdn.net/lzinner/article/details/79736138
3.点灯实验介绍
1.点灯就是实现IO口的高低电平的转换
过程:
1.实现io口时钟使能
RCC->APB2ENR|=1<<2;//
RCC->APB2ENR|=1<<5;//
2.实现io口的简单创建(init)(1.配置io口使能,2.配置io口输出的高低电平)
//GPIOA8
GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;
GPIOA->ODR|=1<<8;
//GPIOD2
GPIOD->CRL&=0xFFFFF0FF;
GPIOD->CRL|=0X00000300;
GPIOD->ODR|=1<<2;
3.主函数记得配置系统时钟
#include"stm32f10x.h"
#include"delay.h"
#include"led.h"
int main()
{
delay_init(72);//È·¶¨ÏµÍ³Ê±ÖÓΪ72mhz
LED_init();
while(1)
{
GPIOA->ODR=1<<8;
GPIOD->ODR=1<<2;
delay_ms(500);
GPIOA->ODR=~(1<<8);
GPIOD->ODR=~(1<<2);
delay_ms(500);
}
}
4.关于一些问题
1.&=
一般对某个寄存器进行刷新的时候使用该方法,
GPIOA->CRH&=0XFFFFFFF0;//将GPIOA相应位置进行初始化
2.|=
一般用于针对寄存器的某一位或者某几位进行初始化
GPIOA->CRH|=0X00000003;
史海拾趣
|
有需要请联系我 免费的 截止时间2009.6.28(上班了,就没时间了) [ 本帖最后由 sjl105105 于 2009-6-26 12:31 编辑 ]… 查看全部问答> |
|
CE上开发MC3000的程序,我去MC3000下他的SDK,没有搞清楚应该下载下面的哪个. 1:Platform SDK for MC3000 v1.1 with Windows CE 5.0 Core 2:Platform SDK for MC3000 v1.1 with Windows CE 5.0 Professional 不知道这两个有什么区别. 另外还有一 ...… 查看全部问答> |
|
我在用proteus做LPC2132的串口通信仿真时,外接一个虚拟终端和示波器,用示波器来查看数据发送的波形 当把示波器和虚拟终端接在一起然后连到Txd0 Rxd0上时,虚拟终端上面不能显示LPC2132发过来的数据,但是示波器可以看到LPC2132串口数据发送的波 ...… 查看全部问答> |
|
1.如果想实现定周期While循环时,需要用Wait(ms).vi而不是Wait Until Next ms Multiple.vi2.Wait(ms).vi在与代码并行时可以保证整个运行时间为设定值,这个功能一般都会以为是Wait Until Next ms Multiple.vi的特性3.Wait Until Next ms Multipl ...… 查看全部问答> |
|
近来一直在学习在fpga如何进行异步信号的处理,有一些心得,开个贴,把自己的一些体会贴出来,跟大家分享,也期待可以得到高手的指点。 目录如下: &n ...… 查看全部问答> |
|
如题,我在练习的时候遇到了一个可能比较基本的问题:不通过定时器,只写一个delay函数来实现LED灯的闪烁和数码管的点亮。 我自己用这种方式写的(8个LED闪烁,点亮2个数码管),无法实现上述功能。LED能闪烁,但是两位数码管中的第一位不能稳定显 ...… 查看全部问答> |
|
看到论坛里面有用1602显示汉字的,很好奇,也整弄了下 找了个区模的软件,能很好的取模,共享给大家 第一步:先新建一个 x*y 的模; 第二步:自己一个点点自己点; 第三步:使字模左右翻转下; 第四部:设置(看图片) 第五部: ...… 查看全部问答> |




