- 博客(5)
- 收藏
- 关注
原创 DMA控制器
我们还需要配置中断函数,当我们在电脑上发送数据后,串口接收数据,DMA开始运输,当没有接收数据了之后串口会产生空闲中断,在中断服务函数里我们首先要关闭DMA的运输,接着我们要关闭DMA的运输,然后读取在通道中剩余还没运输的数据量,再将已经运输到存储器的数据量发送给电脑,之后将重新设置传输的数据量,设置传输的大小依然是数据的大小,最后开启DMA。DMA_M2M,这个参数为enable,代表存储器到存储器,参数为disable,代表外设到存储器,这里我们选择disable,即外设到存储器。
2023-10-15 19:55:59 57 1
原创 WWDG窗口看门狗
最大超时时间算出来了,最小超时时间的公式呢,直接参考up主江协科技的公式:TWIN = TPCLK1 × 4096 × WDGTB预分频系数 × (T[5:0] - W[5:0]),前面和最大超时时间的公式一样,后面从(T[5:0] + 1)变为(T[5:0] - W[5:0])套公式,20ms = 1/36000 x 4096 x 8 x(T[5:0] - W[5:0])可以得到 W[5:0]的值为21。接着来看上面的部分,下面的部分可以看作是设置最大时间,那么上面这部分大概率就是设置最小时间了。
2023-10-05 17:18:34 81
原创 IWDG独立看门狗
为了提高容错率,我们一般通过在为寄存器写入某个特定值来代替寄存器写入一位的功能,例如,当我们为键寄存器写入0xAAAA时才表示喂狗,而不是寄存器当中的某个位置1或置0,如果是某个位的操作,那么程序出问题是偶然的将那个位进行置1或置0,看门狗将起不到作用,所以我们为了降低这种可能性,采用为寄存器写入特定值的方式来实现功能。看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性。
2023-10-04 21:43:41 80 1
原创 PWR电源控制
OLED屏幕会显示一下当前计数器的值和闹钟的值,然后清屏,进入待机模式,在10秒后,当前计数器的值等于闹钟值,退出待机模式,程序从头开始,重新设置闹钟值,再显示,之后再进入待机模式。SLEEPDEEP设置为1,表示深度睡眠模式,将PDDS设为0,表示停机模式,LPDS可以设置电压调节器,LPDS = 0,电压调节器开启,LPDS = 1,电压调节器处于低功耗模式,最后调用WFI或WFE指令即可。了解了待机模式,下面来尝试下一下待机模式的代码,我们可以使用RTC实时时钟的闹钟事件来推出待机模式。
2023-10-01 14:47:46 209
原创 RTC实时时钟
RTC预分频器设置,我们可以设置RTC_PRL为32767,下面的RTC_DIV是一个自减的余数寄存器,当有32.768KHz时钟信号传来时,RTC_DIV立刻溢出并产生溢出信号,之后变为32767然后每来一个时钟信号自减一次,直到自减为0,这时再来一个时钟信号便溢出。所以要加上初始化函数中的 if 语句。调用完函数后,秒数要减去8*60*60,因为我们算的是伦敦的时间,而我们数组要表示的是北京时间,所以要减去8小时,mktime计算的就是伦敦的时间,之后再读取时间函数加上8小时就可以转换为北京时间。
2023-09-27 23:00:23 671 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人