- 博客(17)
- 收藏
- 关注
原创 STM32H723ZGT6使用ADC+DMA时数组大小问题导致的卡死
我们再看一眼CubeMX,默认把Stack Size设置为了0x400,也就是1024比特,正好对应512个uint16_t数据,所以我们把这个Stack Size调大,直接加一个0,增大16倍。在我尝试旧版本CubeMX,新版本CubeMX都无果之后,终于意识到这个是跟数组大小有关的,因为我一开始直接设置的数组大小是1024,后来才想到改小一点试试。当设置数组长度大于512时,哪怕设置为513,在调试的时候程序就会卡死在。这下子,把数组长度设置为8192=512*16,还是可以正常采集。
2025-03-19 16:54:33
93
原创 Turing Complete-逻辑引擎
第一步:解析指令,指令是一个八位的操作码,八位操作码中只有低二位起作用,需要2-4译码器解析操作码。解决办法:观察真值表可知,只需要将或门的输出镜像就可以得到与非门,镜像的操作是在输入前加非门。解决办法:用一个八位分线器得到低二位,将第二位接到3-8译码器,就能得到2-4译码器了。第二步:分别实现按位或、按位与非、按位或非、按位与。2.按位与非则需要通过或门和非门搭建与非门。把之前搭建的与非门再接一个非门即可。1.按位或直接使用八位或即可。3.使用或门和非门搭建或非门。4.使用或门和非门搭建与门。
2025-02-05 10:24:44
226
原创 Turing Complete-小盒子
第一步:我们要判断要读取哪个地址,通过一位解码器和4个与门就可以把两个地址位转化为4个与门的输出。第二步,通过开关和8位存储器,组成4个8位存储器,将开关的启用端和第一步与门的输出相连。开关的输入端连接读取或者写入,再将8位存储器的输入输出分别连接即可。搭建4个8位存储器,这个存储器可以随意读写,有2个地址位。
2025-02-05 08:47:28
250
1
原创 Turing Complete-3位解码器
判断二:3个输入中是否有1个绿色,并确定是输入1、输入2还是输入3。判断三:3个输入中是否有两个绿色,并确定是输入1、输入2还是输入3。解决办法:通过两个并联的与门,一个或门,一个异或门来判断。解决办法:通过两个并联的与门,一个异或门来判断。解决办法:三个输入通过三输入或门再取反。解决办法:通过一个三输入与门来判断。穷举法,通过与门和非门穷举所有情况。判断一:3个输入中是否有0个绿色。判断四:3个输入中是否有三个绿色。就是搭建一个3-8译码器。使用四种判断来解决问题。
2025-02-04 15:56:21
277
原创 Turing Complete-总线
首先通过一个非门两个开关,来控制输入口。要注意的是将两个开关的输出口连接起来。再用一个非门两个开关来控制输出口。
2025-02-04 09:50:41
160
原创 Turing Complete-优雅存储
通过一个非门和一个开关,在不写入的情况下,将延时线输出的值反馈到延时线的输入,就可以实现“寄存”。通过写入位控制开关,使待写入的值写入延时线中,可以实现控制写入的一拍延时。接下来要解决的问题是,在不写入的情况下,待写入的值如何“寄存”。
2025-02-04 09:25:14
262
原创 Turing Complete-1位开关
把输入1当作控制信号,把输入2当作输出信号。通过非门和开关使输入2形成双通道输出,通过输入1来控制两个通道的开闭。通道一为输出输入2取反。通道二为输出输入2本身。
2025-02-03 22:53:39
316
原创 Turing Complete-全加器
其次考虑car位,当输入中1的个数大于等于2的时候,car位为1,那么就要判断输入中1的个数是否大于等于2。首先先考虑sum位,当输入中1的个数为奇数的时候,sum位为1,那么就要判断输入中1的个数。个与门和一个三输入或门来判断,当输入中1的个数大于等于2时,或门的输出为1。判断二:输入中1的个数是否大于等于2。就是三路求和,二进制表示结果。判断一:输入中1的个数。判断方法:二级异或门。
2025-02-03 22:23:02
347
原创 Turing Complete-奇变偶不变
首先用非门产生一个恒为1的源,将1接到异或门,将异或门的输出接一个延时,再将延时的输出接到异或门的另一个输入形成负反馈。要求:奇数时刻输出0,偶数时刻输出1。
2025-02-03 17:31:39
354
原创 Turing Complete-信号计数
所以接下来要解决的问题是,保证输入端有2或3个1时,输出端第二位为1的情况下使输入端有4个1时输出端第二位为0。但是这个方法的问题是当4个输入均为1时,依然会使输出端第二位为1,实际上这时输出端第二位应该为0。接下来考虑输出端的第二位,第二位是2,当输入信号中有2个或者3个1的时候,输出端第二位为1。那么还是使用6个与门来判断4个输入中的1是否大于等于2,然后使用2级或门得到判断的结果。首先考虑输出端的最低位,最低为是1,当输入信号中有奇数个1的时候,最低位为1。判断三:输入端1的个数是否为4。
2025-02-03 17:02:17
398
原创 Turing Complete-半加器
两个输入,当只有1个为1时,sum位为1,car位为0。当两个都为1时,sum位为0,car位为1。那么异或门的输出为连接sum,与门的输出连接car即可。
2025-02-03 16:12:23
256
原创 Turing Complete-成对的麻烦
个与门来检测4个输入中,1的个数是否大于等于2,当大于等于2时,至少会有一个与门输出1,所以再用两级或门讲6个与门的输出取或,得到最终的输出。这一关是4个输入,当输入中1的个数大于等于2时,输出1。
2025-02-03 16:06:26
265
原创 STM32-驱动1.8寸TFT-LCD屏幕
在CubeMX上把GPIO口引出并命名。lcd_init.c文件。lcd_init.h文件。lcdfont.h文件。
2024-11-25 23:25:32
22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人