![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32L1
jacklondonjia
这个作者很懒,什么都没留下…
展开
-
如何让stm32L151工作在使用LL库的情况下 ,运行在32M时钟
Stm32L151是用来做低功耗应用的,该芯片虽然也是M3的核,但是最大只能工作在32M(比f103的64M(HSI)和72M(HSE)相差巨大)第一次使用Stm32CubeMX配置该芯片,生成工程后竟然无法执行。时钟树配置如下图调试断点后,判断程序死在了这段代码位置void SystemClock_Config(void){ LL_FLASH_SetLatency(L原创 2017-11-10 17:06:45 · 3286 阅读 · 0 评论 -
LL库通过串口+DMA方式发送数据
在RM0038(L151的手册)中的Chapter 27.3.13 Continuous communication using DMA章节有配置的方式和顺序:Transmission using DMA:DMA mode can be enabled for transmission by setting DMAT bit in the USART_CR3 register.原创 2017-11-16 10:46:52 · 12925 阅读 · 2 评论 -
获取寄存器地址的方法
如果需要使用TX1的DMA传输,就会涉及到配置DMA的外设地址。在这里,外设地址应该是USART1的DR寄存器的地址。可是如何获取该寄存器的地址呢?现在实测了3种方式,都可以实现。方法1:直接查询手册中寄存器映像(map),USART1的DR地址为0x40013804方法2:手册中查看,DR寄存器的偏移地址为0X04,那么USART1的DR地址可以写成(USART1原创 2017-11-16 11:21:30 · 9598 阅读 · 0 评论 -
如何调试程序时 从第一条指令开始执行
一般我们在iar上面调试的时候,程序往往是从main函数的第一行开始运行的。当我们需要查看main函数之前的操作流程的时候,就需要进行以下的设置:在工程上面右键->option->Debugger->Setup->run to main之前的勾去掉原创 2017-12-22 15:16:25 · 3298 阅读 · 0 评论 -
M3的MCU的启动过程
这段时间再看bootloader相关的内容,因此也想了解下main函数之前,mcu做了什么。参考的文档和博客的地址如下:http://www.sunyouqun.com/2017/05/mcu-startup-procedure/先抄一张图,这张图描述了MCU的映像文件“所谓映像文件,就是工程编译完成后生成的bin文件。映像文件起始位置存放中断向量表(Vector Ta原创 2017-12-22 16:15:15 · 3680 阅读 · 0 评论 -
查看工程中的库文件和.o文件的调用
工程右键->Option->Linker->List->Generate log file &Module selections在工程的output目录下会有一个.log文件例如Loading object F:\Github\IAP\STM32L1xx in-application programming (IAP) using the USARTproject\STM3原创 2017-12-26 09:06:18 · 1802 阅读 · 0 评论 -
.map文件分析
在IAR的工程的Output文件夹中有个.map文件,该文件说明了各个函数占用的尺寸和地址。"A0": place at 0x08000000 { ro section .intvec };"P1": place in [from 0x08000000 to 0x08007fff] { ro };"P2": place in [from 0x20000000 to 0x200027f原创 2017-12-27 08:33:08 · 17917 阅读 · 0 评论