硬汉嵌入式论坛

 找回密码
 立即注册
查看: 738|回复: 6
收起左侧

[有问必答] 关于AD7606的读出问题

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2022-6-20 20:18:47 | 显示全部楼层 |阅读模式
自己做了一个阵列电阻读出的扫描电路,参考了V5的例程,源代码如下

其中col是选中的阵列行(用GPIO控制,用万用表测试确实是按照顺序依次选中),依次扫描,然后每隔500ms扫描一行读一次值。但不知道为什么每次读了四个值以后就会再重新打印PrintfLogo这个函数,是定时器设置的问题吗还是别的什么?
QQ截图20220620200911.bmp
QQ截图20220620200922.bmp
QQ截图20220620200937.bmp
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2022-6-20 20:22:26 | 显示全部楼层
这个是串口发送的数据
QQ截图20220620201624.bmp
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106638
QQ
发表于 2022-6-21 01:44:50 | 显示全部楼层
重复打印,这个是你的系统重启了,你看下你的工程是不是开看门狗之类的东西了。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2022-6-21 09:39:16 | 显示全部楼层
eric2013 发表于 2022-6-21 01:44
重复打印,这个是你的系统重启了,你看下你的工程是不是开看门狗之类的东西了。

那我估计是这个定时器的问题了,但是我设置的id也没超过定义的定时器数量,为什么会重启呢?
QQ截图20220621093134.bmp
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2022-6-21 10:29:04 | 显示全部楼层
eric2013 发表于 2022-6-21 01:44
重复打印,这个是你的系统重启了,你看下你的工程是不是开看门狗之类的东西了。

另外我只要把我上传的第二张图的colz(col);col++;这两行代码去掉,系统也不会出现重启的问题,但colz这个函数只是给我设置的GPIO输出0和1的作用,为什么会影响到系统重启呢?
[C] 纯文本查看 复制代码
void colz(uint8_t z)
{
	switch(z)
			{
			case 0:
        col0();

			break;
			case 1:
        col1();

			break;
			case 2:
        col2();
			break;
			case 3:
        col3();

			break;
			case 4:
        col4();

			break;
			case 5:
        col5();

			break;
			case 6:
        col6();
		 break;
			case 7:
        col7();
		 break;
			case 8:
        col8();
		 break;
			case 9:
        col9();
		 break;
			case 10:
        col10();
		 break;

			}
}


void col1(void)
{
   col1_1();
   col2_0();
   col3_0();
   col4_0();
   col5_0();
   col6_0();
   col7_0();
   col8_0();
   col9_0();
   col10_0();

}



#define col1_1()		GPIOA->BSRR = GPIO_PIN_0
#define col1_0()		GPIOA->BSRR = ((uint32_t)GPIO_PIN_0 << 16U)
#define col2_1()		GPIOA->BSRR = GPIO_PIN_1
#define col2_0()		GPIOA->BSRR = ((uint32_t)GPIO_PIN_1 << 16U)
#define col3_1()		GPIOA->BSRR = GPIO_PIN_2
#define col3_0()		GPIOA->BSRR = ((uint32_t)GPIO_PIN_2 << 16U)
#define col4_1()		GPIOA->BSRR = GPIO_PIN_3
#define col4_0()		GPIOA->BSRR = ((uint32_t)GPIO_PIN_3 << 16U)
#define col5_1()		GPIOA->BSRR = GPIO_PIN_4
#define col5_0()		GPIOA->BSRR = ((uint32_t)GPIO_PIN_4 << 16U)
#define col6_1()		GPIOA->BSRR = GPIO_PIN_5
#define col6_0()		GPIOA->BSRR = ((uint32_t)GPIO_PIN_5 << 16U)
#define col7_1()		GPIOA->BSRR = GPIO_PIN_6
#define col7_0()		GPIOA->BSRR = ((uint32_t)GPIO_PIN_6 << 16U)
#define col8_1()		GPIOA->BSRR = GPIO_PIN_7
#define col8_0()		GPIOA->BSRR = ((uint32_t)GPIO_PIN_7 << 16U)
#define col9_1()		GPIOC->BSRR = GPIO_PIN_4
#define col9_0()		GPIOC->BSRR = ((uint32_t)GPIO_PIN_4 << 16U)
#define col10_1()		GPIOC->BSRR = GPIO_PIN_5
#define col10_0()		GPIOC->BSRR = ((uint32_t)GPIO_PIN_5 << 16U)
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2022-6-21 19:06:00 | 显示全部楼层
此贴终结,我已经知道原因了,是一条线连错了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106638
QQ
发表于 2022-6-22 01:05:04 | 显示全部楼层
z14jj 发表于 2022-6-21 19:06
此贴终结,我已经知道原因了,是一条线连错了

最近好几个网友出现硬件方面的问题,而在软件上耽误了不少时间。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-27 10:13 , Processed in 0.181846 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表