![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
yky189
这个作者很懒,什么都没留下…
展开
-
Keil编译器--结构体指针函数;结构体作为参数时,不能调用结构体指针函数
Keil编译器很多奇葩的地方,比如很多程序的写法在keil编译器里面实现是实现不了的,并且不报错,而且莫名其妙的死机。结构体里面有函数指针时,直接调用是可以的,但是在当结构体作为参数传入函数时,调用就会出现硬件中断。相同的方法在其它编译器中是正常运行的,比如QT自动的编译器typedef struct{ uint8_t soCharging;//充电状态 uint8_t soDsarging;//放电状态 uint8_t soChargMos;//充电MOS uint8_t soDsargMo原创 2021-07-21 10:24:23 · 1798 阅读 · 3 评论 -
MDK中One ELF Section per Function选项功能
MDK中One ELF Section per Function选项功能会把程序中未调用的函数给优化掉,不参与编译。原创 2020-11-03 15:51:46 · 1522 阅读 · 0 评论 -
STM32硬件中断的时候软件复位是没用的
1、当STM32单片机发生硬件中断以后,在硬件中断里面用软件复位单片机是可以复位的,但是复位后很大概率还是出现硬件中断。2、硬件中断后再次烧录可以运行的程序无法继续运行,重新上电后才可以运行。...原创 2020-11-03 14:57:12 · 734 阅读 · 0 评论 -
C语言中struct字节对齐问题
1.先确定实际对齐单位,其由以下三个因素决定(1) CPU周期WIN vs qt 默认8字节对齐Linux 32位 默认4字节对齐,64位默认8字节对齐(2) 结构体最大成员(基本数据类型变量)(3) 预编译指令#pragma pack(n)手动设置 n--只能填1 2 4 8 16上面三者取最小的,就是实际对齐单位(这里的“实际对齐单位”是我为了方便区分随便取...转载 2019-09-20 15:09:42 · 179 阅读 · 0 评论 -
STM32定时器时间的计算
跟时间相关的量有:系统时钟、分频系数、重装载值系统时钟默认不配置的时候是72M,可以根据自己需求配置;分频系数就是对系统时钟进行多少分频之后在使用,最好设置为72的倍数,方便运算;重新装载值是计算这么多值,时间到了之后重新开始计算的值,每一次计数的时间为分频之后时钟的到时;假设系统时间72M,分频系数设置为7200-1,那现在定时器的时钟为10kHz,每计一个数花费1/(10000)秒,重...原创 2019-09-19 14:15:32 · 2690 阅读 · 0 评论 -
stm32关于SystemCoreClock这个变量
实际上不是任何时候SystemCoreClock都代表着当前系统时钟,只有调用SystemInit();时钟配置函数的时候,SystemCoreClock才表示当前系统时钟,如果自己手动配置了系统时钟,则次变量不代表当前系统时钟。系统上的之后会首先进入SystemInit();函数配置时钟,然后再进入main()函数,如果在main函数里自己重新配置了时钟,那么此时时钟值即为自己配置的,而不是S...原创 2019-05-18 11:10:28 · 11356 阅读 · 0 评论 -
stm32f103系列低功耗模式(附代码)
在低功耗模式下,stm32f103系列的实际功耗st官方芯片手册有给出,也可以看如下文章:https://blog.csdn.net/yky189/article/details/89914928进入代码模式:不用初始化其它rtc时钟有个的其它配置:直接调用如下函数即可进入待机模式并设置RTC闹钟在15s后发生闹钟事件唤醒MCU,wake_up管脚唤醒MCU/***************...原创 2019-05-07 10:17:03 · 8775 阅读 · 2 评论 -
stm32低功耗模式下mcu的实际功耗(ST芯片手册)
STM32F103xC、 STM32F103xD和STM32F103xE增强型产品支持三种低功耗模式,可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡。 ● 睡眠模式在睡眠模式,只有CPU停止,所有外设处于工作状态并可在发生中断/事件时唤醒CPU。 ● 停机模式在保持SRAM和寄存器内容不丢失的情况下,停机模式可以达到最低的电能消耗。在停机模式 下,停止所有内部1.8V部分的供...转载 2019-05-07 09:47:29 · 6599 阅读 · 1 评论 -
void SysTick_Handler(void)系统滴答时钟中断函数
可以作为整个系统的时基!在小调度程序和实时操作系统中可以用作系统的时基。微控制器的定时器资源一般比较丰富,比如STM32存在8个定时器,为啥还要再提供一个SYSTICK? 原因就是所有基于ARMCortex_M3内核的控制器都带有SysTick定时器,这样就方便了程序在不同的器件之间的移植。而使用RTOS的第一项工作往往就是将其移植到开发人员的硬件平台上,由于SYSTICK的存在无疑降低了移...转载 2019-01-19 21:24:50 · 7931 阅读 · 0 评论 -
stm32 SysTick时钟
SysTick定时器被捆绑在NVIC中,用于产生systick异常。在以前,操作系统还有所有使用了时基的系统,都必须一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。滴答中断对操作系统尤其重要。例如,操作系统可以为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要...原创 2019-01-19 11:36:00 · 908 阅读 · 0 评论