发新帖我要提问
123
返回列表
打印
[STM32F4]

物联网之STM32开发一

[复制链接]
楼主: xiyaoko2365
手机看帖
扫描二维码
随时随地手机跟帖
41
xiyaoko2365|  楼主 | 2022-11-20 23:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
改进

#define     GPIOA_ODR    ( *(unsigned int *) ( GPIOA_BASE  +  0x14 ))

val  = GPIOA_ODR  ;    //读
GPIOA_ODR = val  ;     //写

使用特权

评论回复
42
xiyaoko2365|  楼主 | 2022-11-20 23:24 | 只看该作者
第二种方式:用结构体封装寄存器

用上面的方法去定义地址,还是稍显繁琐、根据我们每一类外设对应的寄存器组地址都是连续增长的特点,我们引入 C 语言中的结构体语法对寄存器进行封装

typedef struct {
uint32_t                MODER;                 /*Address offset: 0x00 */
uint32_t                OTYPER;         /*Address offset: 0x04 */
uint32_t                OSPEEDR;         /*Address offset: 0x08 */
uint32_t                PUPDR;                 /*Address offset: 0x0C */
uint32_t                IDR;                 /*Address offset: 0x10 */
uint32_t                ODR;                 /*Address offset: 0x14 */
uint32_t                BSRR;                 /*Address offset: 0x18 */
uint32_t                LCKR;                 /*Address offset: 0x1C */
} GPIO_TypeDef;

#define     GPIOA_BASE        ( (unsigned int ) 0x48000000 )
#define     GPIOA         ((GPIO_TypeDef *) GPIOA_BASE)
注:我们访问GPIOA的控制寄存器组时、直接使用宏定义好

使用特权

评论回复
43
xiyaoko2365|  楼主 | 2022-11-20 23:27 | 只看该作者
    GPIO_TypeDef 类型的指针,而且指针指向 GPIOA端口的首地址,这样我们直接用宏GPIOA访问改外设的任意一个寄存器

        GPIOA->MODER     =  0x20 ;

        GPIOA->OSPEEDR  =  0x16 ;

使用特权

评论回复
44
xiyaoko2365|  楼主 | 2022-11-20 23:28 | 只看该作者
STM32F0启动文件分析

内容概要:

STM32F0启动模式

C语言程序内存排布

启动文件startup_stm32f051.s分析

使用特权

评论回复
45
xiyaoko2365|  楼主 | 2022-11-20 23:29 | 只看该作者
STM32F0的启动模式:

使用特权

评论回复
46
xiyaoko2365|  楼主 | 2022-11-20 23:29 | 只看该作者
注:Cortex-M0 的程序映像通常是从地址 0x00000000 开始的、系统复位后,处理器首先读取向量表中的前两个字(8 个字节),第一个字存入 MSP,第二个字为复位向量,它表示程序执行的起始地址(复位处理)

使用特权

评论回复
47
xiyaoko2365|  楼主 | 2022-11-20 23:30 | 只看该作者
根据启动模式的不同,用户闪存、系统闪存和SRAM都 可以映射到0x0的低端地址;      

我们的板子boot0直接接地,因此启动区域为flash启动
C语言内存排布:



注:栈的作用是用于局部变量,函数调用,函数形参等的开销        

使用特权

评论回复
48
xiyaoko2365|  楼主 | 2022-11-20 23:31 | 只看该作者
      堆主要用来动态内存的分配

STM32F051启动文件分析:

源码及分析过程链接:https://pan.baidu.com/s/1R7ggGedaR4Zsxhzeis_8vg 密码:7060

注:使用keil打开最佳

使用特权

评论回复
49
万图| | 2024-11-12 07:12 | 只看该作者

把这干扰信号再次辐射出去

使用特权

评论回复
50
Uriah| | 2024-11-12 08:15 | 只看该作者

对变换器效率测量

使用特权

评论回复
51
帛灿灿| | 2024-11-12 10:11 | 只看该作者

印制电路板(PCB)的线路设计

使用特权

评论回复
52
Bblythe| | 2024-11-12 11:14 | 只看该作者

含有延展到远高于基本开关频率的谐波

使用特权

评论回复
53
周半梅| | 2024-11-12 13:10 | 只看该作者

需要设定一个阈值来对像素点进行设置

使用特权

评论回复
54
Pulitzer| | 2024-11-12 14:13 | 只看该作者

输入电容主要是起到高频能量存储器的作用

使用特权

评论回复
55
童雨竹| | 2024-11-12 16:09 | 只看该作者

二值化就是让图像的像素点矩阵中的每个像素点的灰度值为0(黑色)或者255(白色

使用特权

评论回复
56
Wordsworth| | 2024-11-12 17:12 | 只看该作者

它们对PCB布局的重要性

使用特权

评论回复
57
Clyde011| | 2024-11-12 18:15 | 只看该作者

混淆的话,会引起电源工作不稳定

使用特权

评论回复
58
公羊子丹| | 2024-11-12 19:08 | 只看该作者

通过OV7670摄像头进行图像采集

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则