历史上的今天
今天是:2024年09月10日(星期二)
2019年09月10日 | STM32用寄存器点亮LED灯
2019-09-10 来源:eefocus
寄存器:实际上就是cpu里面的东西 每个单元都有不一样的功能,根据功能给这些存储单位取别名,这个别名就是我们所说的寄存器。
寄存器的映射:给寄存器分配地址的过程就叫作寄存器的映射。
新建工程:
新建工程需要手动创建main.c
.h(头文件)头文件:寄存器的映射
如何写寄存器的映射:
首先找到需要控制外设的IO口,根据这个IO口去寄存器组织架构寻找需要控制外设的IO口在哪里基地址是什么,然后再看需要控制外设的IO口的偏移地址。该IO口的地址就是基地址+偏移地址
**端口的地址在编译器看来只是个地址所以必须强制转换成指针(*unsigned int)+地址
通过控制io口的高低电平去实现我们想要的功能(通用io口(GPIO))
修改寄存器位的操作方法:
//直接操作会把寄存器的32位都操作了,用下面的方法就可以操作你想操作的位
对某位清零,对某几位清零[a &=~(1<<3)]/[a &=~(3<<2*2)]
对某位进行赋值[a |=(1<<3)]
对某位进行取反[a ^=(1<<3)]
GPIO的输出初始化顺序
GPIO是输入、通用输出、复用功能还是模拟输入(模式寄存器 MODER)
如果是输出还要确定是推挽输出还是漏极输出(输出类型寄存器 OTYPER)
配置输出的速度(输出速度寄存器 OSPEEDR)
输出时要不要开启上下拉电阻(上拉/下拉寄存器 PUPDR)
具体输出内容(置位复位寄存器BSRR和数据输出寄存器ODR)
//复位就是清零,置位就是置1
用寄存器点亮LED灯:
(查手册,看地址:
GPIOH 基地址为0x4002 1C00
GPIOH的外设时钟RCC基地址为0x40023800)
1.查看原理图
2.STM32中的每个外设时钟都是关闭的,由RCC统一控制
RCC_AHB1ENR地址为(0x40023800 +0X30)
控制GPIOH的外设时钟在第七位
为1时使能


3. STM32和STC89C51单片机不一样。STM32还需控制IO口,定义XX为输出端口
有一个MODER寄存器(模式寄存器)控制io的输入或者是输出
GPIOH_MODER地址(0x40021C00+0x00)
选择00通用输出模式


4. 确定输出类型(OTYPER)
//推挽输出
输出1
GPIOH_OTYPER 地址(0x4002 1C00+0x4)



5.配置输出速度(OSPEEDR)
//配置输出速度为2M
输出00
GPIOH_OSPEEDR地址(0x4002 1C00+0x08)



6.输出要不要上拉电阻
//不要上拉电阻
输出00
地址(0x4002 1C00+0x0C)


7. 让PH10输出低电平,点亮led灯(也可以通过控制GPIO端口置位/复位寄存器下次再写)
地址(0x4002 1C00+0x14)

————————————————————————————————————————————————————————————————————
点亮其他灯和点亮红灯的方法一样的
点亮一绿灯的代码如下:

流水灯

史海拾趣
|
声明:这是别人的帖子,看了颇有感触,故转帖于此。 电子设计中,细节问题往往会导致严重的后果,所以我们一定要注意细节, [教训分享] 一分钱的疏忽造成数万元的损失 小弟去年给外面公司设计了一台智能型阀门伺服控制器,在本地几个小站现场工作都 ...… 查看全部问答> |
|
【EEWORLD带你DIY】示波器V2.0信号板及人机界面板打样归来~~ 活动介绍:使用Altera Cyclone III FPGA Stater 进行DIY示波器进程: https://www.eeworld.com.cn/zhuanti/20100703altera/20100703altera.html 信号板及人机界面板打样归来,上图 … 查看全部问答> |
|
大家帮忙看一下,结果不是透明位图,错误在哪里?多谢! void CPituceDlg::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: add draw code for native da ...… 查看全部问答> |
|
一个简单程序(UART),不晓得问题出在那里,请大家帮哈忙! 以下代码是UART0操作:收到上位机的字符然后转送回去。结果是能收到,但是是错误的,如发 01 收到 C0,请大家看看是那里出错了,小弟刚开始用430。 /**************************************************** 说明:串口测试程序 波特率:9600bps ...… 查看全部问答> |
|
生活在职场中,你会发现到处都潜伏着危机,尤其是你的嘴,稍不留意或许“祸”就从口出了,那么如何在办公室中避免不必要的麻烦,这些禁语你必须知道哦: 禁语一:薪水问题 很多公司不喜欢职员之间打听薪水,因为同事之间工资往往有不小差 ...… 查看全部问答> |
|
对于电子产品来说,印制线路板设计是其从电原理图变成一个具体产品必经的一道设计工序,其设计的合理性与产品生产及产品质量紧密相关,而对于许多刚从事电子设计的人员来说,在这方面经验较少,虽然已学会了印制线路板设计软件,但设计出的印制 ...… 查看全部问答> |




