-
现场的电压反馈线是接到自动化设备里面的,因为要经过各种转角,客户增加了转接线。
不是那种一对一连接的,而是一排数百根线接过去。
可能是负载是电池,电压不会突变,所以采用这种方式。
而且目前产品已在现场跑着了,没办法再去更改硬件了。
-
maychang 发表于 2022-10-17 14:51
『所以,在算法层面有更好的方案吗?』
硬件接错线,想用软件解决?
是的,因为上位机可以控制电源进行恒流充放电,也可以获取到电源信息如实时电压电流,运行时长,容量电量。
目前的方案就是想通过数据分析来把接错通道的电源找出来即可。
-
ARM Cortex-M3与Cortex-M4权威指南第三版下载
这本资料真的很不错。
-
1.在system_stm32f10x.c中有#define SYSCLK_FREQ_72MHZ 72000000
2.在程序中调用Systeminit();
系统时钟就会被配置成72MHZ。
关于时钟的配置在RCC文件里,那为什么他们要在应用重复配置时钟呢??这样做是为了特定器件的时序吗
-
huo_hu 发表于 2017-6-29 00:57
传感器接反了
我确认过了,真没接反
-
汤权 发表于 2017-6-27 12:28
看到你的头像我就不想帮你看了
这..
-
HX711_Buffer是unsigned long类型的,weight是unsigned int型的,我都怀疑是不是传感器坏掉了。
-
我觉得应该是我敷铜出了问题,我设置的是10mil
-
木森林的年轮 发表于 2017-5-2 12:42
51下载 得冷启动吧
这个编程器是PL2302好像不需要冷启动。
-
我不懂 发表于 2017-5-2 12:29
调换TX 和RX引脚试试
再不就换个烧写器
我今天让老师把程序烧到我的单片机去,结果我编程器只用了VCC和GND板子都没反应。
-
上面的排针接的传感器,左边的排针是ISP接口,底层铺铜,然后顶层走电源线,我觉得硬件设计是没有问题的,就是程序烧录进不去。
-
SBUF是一个8移位寄存器
-
哪种通信标准,基于哪种MCU?如果51的话,全双工异步串行口的话.就是你定义数组,首先收(array[i]=SBUF),然后收完,再把数组发出去(SBUF = array[i]),弄点标志位搞搞,应该很简单。
-
FENFAXIANGSHANG 发表于 2017-4-5 20:18
为什么不能是16进制呢?串口助手里边有16进制这个功能,难道也不可以用16进制吗
十六进制就是hex发送,因为发的是字符,当然要用文本发送。你也可用hex发送,不过要对应ASCII码表。
-
首先“K+22”是一个字符串对吧。
第一点:这个字符串是由四个字符组成的对吧,那你接受的时候一定要定义一个字符数组,必须是char array[4],而不能是unsigned char
第二点:你是字符串,字符串在内存中是以ASCII码存在的,你接受过来的是'2',而不是2,如果你想变成2的话用‘2’-'0'。
第三点:使用串口调试助手的,数据形式一定得是文本,不能是16进制,另外波特率还要对应好。
-
strong161 发表于 2017-3-22 22:32
if( periphal_ini() ) 当然会完整的执行periphal_ini() 这是没有疑问的。
确实是这样的。那么我以后就不会写出periphal_ini();if( periphal_ini() ) {.....}:)
-
cdzx@163.com 发表于 2017-3-23 00:04
如果你不希望periphal_ini()执行两次,你可以这样写:
int f = periphal_ini();
if (f)
{
……
...
是的,你这种使用位变量的做法很不错,学到了。我那个程序的一个bug就是periphal_ini()里面就是我放了个全部变量,导致被窝两次使用了。多谢赐教。
-
if(num == 20),你看看你这个程序num有自加吗??
-
本帖最后由 徐建庆 于 2017-3-23 15:19 编辑
我给你提点意见。第一点,C语言标识符应该用准确的英文描述,比如数码管段码应该是SEG7而不是shumuguan,中断服务函数是isr而不是zhongduan.第二点51内核的单片机是8位机,你告诉我无符号字符型的数据是不是0~255,你写个100000.他能不出错吗?第三点C语言所有语句顶行写??
-
多谢