
单片机原理学习
文章平均质量分 62
红叶落水
这个作者很懒,什么都没留下…
展开
-
CM3学习-中断
(使用双堆栈的条件下,线程模式响应中断时,进入中断入栈时使用psp,然后在中断中使用msp,结束该中断时,切换到psp来出栈)现在使用PendSV来切换上下文,(将PendSV的优先级设置为最低),滴答定时器打断中断后上下文未发生变化,因此可以回到被打断的中断。悬起后,如果优先级不够高,则将缓期等待执行。相同的抢占优先级,不同的子优先级,不会发生抢占,只用于解除悬挂状态,当子优先级也一致时,判断中断源的编号。中断状态标志位在系统内部,用于标识运行,悬挂,完成状态,可以动态改变,可能会导致硬件层次的死循环。原创 2023-05-25 22:12:10 · 740 阅读 · 0 评论 -
CM3学习-内存管理
别名区地址 = ((哪种位带区) + 别名区偏移量) + ((位带区字节地址)*8【*8是因为一个字节有8位】*4【*4是因为每一位都会别拓展成32位,又因为是字节寻址,则4个字节】 + (哪一位)*4)#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)原创 2023-05-25 22:09:46 · 411 阅读 · 0 评论 -
STM32内存笔记
而且,如果你在函数里面进行这个操作的话,指针地址位于stack,但分配的内存属于heap,函数结束后,不会影响heap里面已经被分配的空间。所以,在初始化对象类型时,以及结构体时,如果直接申明结构体变量的话,它是属于stack的,会被销毁。其中stack作为系统的栈,所有函数里面定义的局部变量都是占用stack的空间的,递归调用函数要注意栈溢出问题。ROM又被称为“只读存储器”,ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。原创 2022-11-27 13:06:22 · 1634 阅读 · 0 评论 -
十大排序之快速排序
快速排序-RSIC-V版本。原创 2022-10-31 18:10:03 · 142 阅读 · 0 评论 -
十大排序之希尔排序
希尔排序之RSIC-V版本。原创 2022-10-28 17:11:28 · 180 阅读 · 0 评论 -
STM32 IO口模拟串口
比如说,我发送了一段0和1构成的波形,这段波形我希望他有8个二进制的信息,那么我让每一个二进制信息都保持一秒钟,然后在发生变化。那么,我们可以选择奇校验 当这八个数据里由0或2或4...个1时,我们设置校验位为1,那么这九个数据里就有奇数个1。那么,我们如果想要连续发好多个信号,我们不能把所有信息连到一起发送出去,就像我们写英语作文,不能把所有单词的字母挨得特别紧,一点空也不留。那么,每一秒有一个信息,这就是波特率。由于我们的信息中只有1和0两种状态,那么这就意味着1的个数可以是0~8,不是奇数就是偶数。原创 2022-09-03 20:57:13 · 2923 阅读 · 1 评论 -
STM32 时钟随笔
什么是时钟?通俗的的来说,时钟是一个系统的最小时间单位。它并不是用来提供能量的器件,他就像是我们生活中的秒表,以固定的频率一秒一秒的走着。而我们每做一件事都可以说是花费了几秒时间。(不存在零点几秒,它是一个系统的最小时间单位)。在单片机里面通常有4个时钟源,分别是HSI振荡器时钟 (高速内部时钟)8MHSE振荡器时钟 (高速外部时钟)外接一个晶振电路LSI振荡器时钟 (低速内部时钟)40kLSE振荡器时钟 (低速外部时钟)32.768k其中,一般情况下我们使用外部HSE。原创 2022-09-03 09:55:13 · 386 阅读 · 0 评论