STM32CubeMX(STM32F103R6)+Proteus8.13实现汉诺塔(HAL库实现)

电路图如图

以下是代码实现部分

通过pan数组控制pan本身的各个特征,在通过函数显示在显示屏上,按钮都使用中断模式

int hannuolength[5]={36,30,24,18,10};//盘子的长度,不变
int hannuoheight[5]={60,50,40,30,20};//盘子显示出来的高度,随着移动而变化
int hannuoqishi[3]={0,43,85};//显示盘子的起始位置,对应A/B/C
int numhannuo[3]={5,0,0};//A/B/C上有几个盘子
int hannuo[3][5]={
  {1,1,1,1,1},{0,0,0,0,0},{0,0,0,0,0}};//A/B/C柱子的12345盘的情况,在A柱则盘子对应的下标就对应为1
int pan[][4]={
  {0,0,0,4},{0,1,1,3},{0,2,2,2},{0,3,3,1},{0,4,4,0}};//第几个盘,length数,高度,第*大盘子
int KeepMid[5]={0,3,6,9,13};//起始位置的偏移值,让盘子显示居中
/* USER CODE END PTD */
//盘的排名,第几个柱子
//如果此时柱子数组中盘子排名前没有其余盘子,则1,否则0
int HasBigger(int pannum,int zhunum)
{
	for(int i = 4; i >= 0; i--)
	{
		if(hannuo[zhunum-1][i] == 1 && i > pannum)
	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值