
stm32
guanjianhe
这个作者很懒,什么都没留下…
展开
-
stm32 LL库移植 SFUD
【代码】stm32 LL库移植 SFUD。原创 2024-08-10 22:52:11 · 185 阅读 · 0 评论 -
stm32f030c8之基础定时器TIM6
前几天在做项目时候发现,使用标准库建的工程在初始化TIM6时候没有TIM6_IRQn,需要自己添加,初始化如下所示:void tim6_init(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; // RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); // TIM_TimeBaseInitStruct.TIM_Prescaler = 47;原创 2021-05-27 08:19:19 · 3495 阅读 · 1 评论 -
stm32f030内部高速时钟初始化
前几天在做项目时候发现,程序跑起来有问题,具体体现在时钟不准,后来经过排查发现,是因为标准工程默认初始化的外部高速时钟,但实际上是没有外部高速时钟的,所以导致出问题了。使用内部告诉时钟,初始化代码如下:(要注意把外部高速时钟初始化给屏蔽掉)static void SystemClock_Config(void){ RCC_DeInit(); FLASH_SetLatency(FLASH_Latency_1); RCC_HSICmd(ENABLE); while (RCC原创 2021-05-27 08:09:27 · 1129 阅读 · 0 评论 -
SWD调试口
SWD调试接口只要2根线就好:SWCLK/TCK-PA14SWDIO/TMS-PA13原创 2021-04-08 15:14:38 · 809 阅读 · 0 评论 -
stm32中断或异常的执行顺序
测试验证的芯片是stm32f103rct6首先查看进入中断或异常前后的寄存器数据:上图左边是进入中断前的寄存器值,右边是进入中断后的寄存器值,通过SP值得前后对比,可以看出在进入中断后被压了(0x20000330-0x20000310=0x20=32)32个字节数据(因为stm32栈是满递减),这32个字节数据分别是8个寄存器的值,它们分别是R0,R1,R2,R3,R12,LR,PC,PSR,怎么验证是这8个寄存器呢?打开Memory窗口,输入地址0x20000310,得到如下结果:每4个字节一原创 2021-03-20 09:35:21 · 977 阅读 · 1 评论 -
stm32预分频器和自动重装载寄存器减1问题
在设置预分频器时候,要减去1,比如2分频,那么在在TIMx_PSC寄存器中写入的值就是2−1=12-1=12−1=1,而不是2在设置自动重装载寄存器的时候也要减去1,比如要填的值是1000,则要往TIMx_ARR寄存器中写1000−1=9991000-1=9991000−1=999...原创 2020-05-24 00:49:40 · 6189 阅读 · 4 评论 -
CubeMX初体验-01
安装好CubeMX后,双击打开,点击如下图所示:在搜索框选择自己板子上相对应的芯片型号,例如我的是stm32f103rct6,然后点选,如下图所示:出现如下图所示:在配置任何其他外设前,要先配置PA13和PA14两个引脚,否则会出现无法下载或者无法调试等其他问题,如下图所示:现在假如要配置一个引脚,模式推挽输出,初始为高电平,速度为高速,且该引脚为PD2,配置如下:先点选该引脚...原创 2020-02-12 18:30:43 · 342 阅读 · 0 评论 -
Cortex-M3基础
Cortex-M3有15个通用寄存器R0-R15,其中R0-R7所有指令都能访问它们。R8-R12这5个寄存器32位的所有指令都能访问,16位指令只有少部分能访问。R13是堆栈指针,又可分为两种:MSP(主堆栈指针)和PSP(进程堆栈指针)。R14是连接寄存器,用于在调用子程序时存储返回地址。R15时程序计数器。控制寄存器(CONTROL)是Cortex-M3内核的特殊功能寄存器之一。bit3-...原创 2019-06-12 23:26:49 · 970 阅读 · 0 评论