Yim_Hom 发表于 2024-7-31 23:57:24

荣誉版主 Yim_Hom,2024/7,技术漫步,共享,技术回复 索引

本帖最后由 Yim_Hom 于 2024-7-31 23:56 编辑

一、技术文章

1、基于STC8H8K64U及官方库函数进行新建工程_第一部分


»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›开源广场及教学视频交流›基于STC8H8K64U及官方库函数进行新建工程_第一部分 ...


2、入门IoT的一点小开心
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›作品展示›入门IoT的一点小开心


二、回复

1、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›作品展示›STC8H科学计算器实体版--卡东欧

16#回复:
嗯,加油!
还是鼓励大家能多出demo,多出作品,不断丰富完善STC。


2、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›作品展示›STC8G1K08--手办展示转盘


8#回复:
完善后能开源的话就把源码发出来,我给您加精!


3、

»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›开源广场及教学视频交流›STC--ISP添加头文件的路径问题


14#回复:
https://www.stcaimcu.com/data/attachment/forum/202407/28/151930rdhx8euk1dz299v2.jpg https://www.stcaimcu.com/data/attachment/forum/202407/28/151930hx8x8f9fy5fzwy97.jpg https://www.stcaimcu.com/data/attachment/forum/202407/28/151931izqlnnl2eznx0d2n.jpg

应该是你电脑权限的问题,
我也是装在D盘,没加过8A8K,正好做演示。
一个是系统权限,一个是STC-ISP可能需要右键管理员打开。


4、

»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›仿真/编译器/汇编器/头文件›keil中无法添加stc库,按照教程一直提示失败,求教大神 ...


地板回复:
1、关掉keil,重启电脑。
2、重启后,stc-isp放在桌面上,然后右键管理员身份运行
3、重新再操作一次能不能加进去
4、能加进去说明是权限的事儿,加不进去,重新下个stc-isp试试
5、如果还是不行,检查360、windows defender或者系统权限,能够测试3台电脑,猜测可能是一样的系统,设置的权限一模一样吧


5、


»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›其他技术交流›延时1微秒,需要写几条_nop_()语句?| 已解决 ...


10#回复:
https://www.stcaimcu.com/data/attachment/forum/202407/25/115004xsftcnun0srijj12.jpg

https://www.stcaimcu.com/data/attachment/forum/202407/25/115025n87w6vnvouu84g6v.jpg

图1是12M主频下一个nop的时间,
图2就是12M主频下实现1us的计算。
知其然,知其所以然,希望有用。


6、

»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›老鸟反刍/吐槽,新手乐园,毕业设计›求助

6#回复:
1、找下官方例程usb-cdc的范例
2、用这个例程随便发两个数字15.1或者66.6出去,确认接收没问题
3、找一个正常的dht11例程
4、把dht11的模块加到usb-cdc范例中,初始化中复制粘贴dht11的初始化,在你刚才发送的两组数字中,将那俩数字换成你dht11的温度 湿度变量
5、你可以选择延时函数延时一段时间发送那俩数字
6、也可以自己再加一个定时器,选择每间隔多长时间发送一次。

7、

»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›I/O读写及点灯,外部中断 ,所有I/O都支持的普通I/O中断,按键扫描›STC8H8K64U-64Pin IO端口复用矩阵表


5#回复:

对,这个找起来更直观!
点赞

8、

»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC›请问一下屠龙刀的NTC电阻是什么参数的


8#回复:

肯定得拆下来量才能量到,图上有上拉电阻的,在板量出4.8k接近5k,也是对的。


9、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC›参考开天斧官方例程,就是套用公式,计算不出温度值,不 ...


26#回复:
查表法和B值法都可以用,就是看要求和习惯吧。{:smile:}


10、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16›STC8H8K64U-LQFP32串口2发送不了,也进不了中断,诚心求 ...


9#回复:
自从用了STC官方的板子以后,我重新适应STC8(以前没用过),然后基本官方库函数有的,我都用库函数来写,辅助看手册,这样相对效率高一些。
正好前几天写完了串口的基础功能,贴出来希望能帮到你。
我实现了串口1-4中断接收,阻塞发送,PC发来的内容,串口收到后再发送出去。
主程序:
https://www.stcaimcu.com/data/attachment/forum/202407/17/143306is2stwmozdr12fap.jpg

然后是串口将接收到的内容发送回去,使用官方例程,会有丢帧的情况发生。
所以我自己重新改了:
https://www.stcaimcu.com/data/attachment/forum/202407/17/143331bbzxnovidi8xakvi.jpg

然后是串口初始化:
https://www.stcaimcu.com/data/attachment/forum/202407/17/143448zebyqoxo1byjxjx8.jpg

最后是串口中断:
https://www.stcaimcu.com/data/attachment/forum/202407/17/143517i4u7c0t7s77s7nkz.jpg


这个是我自己已经验证过的,你可以参照修改直接使用。
为什么不直接发例程,自己参考的过程中,把代码敲一遍,按照思路引导,看看自己的问题出在哪,能记住。
现成的东西放在那,更不可能能学会。

你也可以做一些测试,用你自己的函数,先发一个字符,再发一个字符串,然后收字符串,然后收发字符串,先把串口基础调通,
这样,接着无论是要收还是发,都知道自己要干什么,要干什么就得先做什么。
不然现成的例程你没有吃透,永远需要问,永远学不会。
希望能帮到你。


10#回复:
最主要的你的串口初始化啊,发送那个IC dat啊,感觉好奇怪
做个标志位,采集到了通过串口发就行了,平时就让串口闲着,或者当标志位为0的时候把串口当作心跳包来用,都可以。
代码还是要实现低内聚高耦合,而不是什么东西都随处用。


13#回复:
但是真的好特别,高手的话,会在过程中重新初始化某个外设进而执行,也是有一定的前提。

如果要用串口就初始化完再进主循环,能降低串口出问题的概率,不然串口中断和主循环里初始化万一有冲突,那你串口究竟有没有起作用,也不知道,等于串口还是不通。

最重要的是基础,能把基础用起来,调通它,然后逐步的中断嵌套也好、中断先后也罢,总归是能跑通。如果跑不通,得多难受啊{:lol:}

低内聚高耦合,也是强调尽可能的实现需要的各个函数彼此之间通过一定的方式能够高度耦合起来,但函数内部基本不发生过多的彼此调用,保证各函数的独立性。

我也是一点点自学起来的,所以知道容易走弯路的地方。仅是建议供参考。
加油!


17#回复:
都是这样,一点点学一点点改,但是能少走弯路多好


11、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›其他技术交流›7805电路


9#回复:
三端集成电路
内部有热过载保护
具有很高的功耗能力
内部短路电流限制
输出电流 1.5A
最小输入电压为 7V
最大输入电压为 25V
工作电流为 5mA
额定电流 Ic= 1A
最大输出电压 VMax=5.2V
最小输出电压 VMin=4.8V
最高结温为 125 ℃

为啥不看看手册{:sweat:}


12、

»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›老鸟反刍/吐槽,新手乐园,毕业设计›新电脑不能下载


6#回复:
猜不出来这是要表达啥,开盲盒吗?


13、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›综合讨论›有没有老哥知道烧录不了程序是什么原因 ...


9#回复:
把你6.89的换成6.94H试试呢


14、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›仿真/编译器/汇编器/头文件›关于link1d的两个问题


沙发回复:
把你下载的选项,也就是STC-ISP窗口左侧部分截个图
另外是跟什么板子连接的?
你把1d的输出电压选成5V,勾选下载完成后持续给目标供电呢,试过吗?


15、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›TFT/LCD12864/LCD1602/红外遥控›两个单片机之间通信,一般用什么方式


10#回复:
板上通讯相对可以随意些
20米以内的RS232
超过20米的一般RS485或者CAN
根据成本、需求、要求、抗干扰和稳定性来定。


16、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC›PWM实现定时器代码请教


14#回复:
我的理解就是定时1秒到,进中断,中断再装一次是2秒,减去1秒的差值,1秒到2秒,中间又是1秒,2到3又是1秒…实现1秒定时。


17、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›其他技术交流›STC8H8K64U的外部中断和定时器测量脉宽怎么显示获取的数 ...


8#回复:
直接串口就可以打印,或者用官方的虚拟硬件显示。
要打印的脉宽得重新定义一个变量,然后把TH1*256+TL1的结果赋值给这个变量。和3楼的方法一样。
通过串口printf打印这个变量,或者用官方的虚拟硬件来显示。

18、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›I/O读写及点灯,外部中断 ,所有I/O都支持的普通I/O中断,按键扫描›P10和P11, 想点亮P10可以通过P11来给P10供电 ...

11#回复:
知道不用mcu怎么点亮一个led,自然就能知道p10 p11应该如何设置高低电平;
然后加电阻是为了限流,这个时候就知道怎么调整电阻去限流;
当两个及以上的led某一极接在同一个vcc或者gnd时,才能共阳、阴;
所以,必要的电路基础还是得有,不然无法支撑后续的学习。

19、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›老鸟反刍/吐槽,新手乐园,毕业设计›修个设备的电路板,持续更新。
42#回复:
我也这么干过来的,一开始只是打算给孩子做个能显示恐龙的屏幕,看淘宝上各种老X电子的纯新二手屏,
后来低成本的恐龙能显示了,就想试试动画,动画就得稍微大一点的MCU,用的STC15
为了动画,再大的MCU也放不下啊,就开始想办法,后来就学串口,用串口直接发送来显示。
显示几幅不满足,得能播放几分钟的bad apple,那就继续搞。
再到后来想做个能显示大汉字的字帖,要么上存储芯片,要么上字库芯片,播放动画的时候就嫌麻烦没学存储,所以选的字库芯片。
后来想着要不修修东西吧,就开始把撤换下来的串口继电器修一修,结果全发现主控坏了。主控丝印都抹没了,直接用STC15搞。
搞着搞着不仅实现了,还实现了超时接收。
然后又开始搞无线控制继电器。
无线都会了,就想着做个机械臂的玩具,然后就做到了机械臂。
再然后就想更进一步,开始学STM32
同时STC15退役,换STC8,而且开始纯官方库开始适应新的MCU。
43#回复:
看亚博智能的上位机做的挺好,但是不让白嫖。最近开始探索亚博智能的上位机和STC8,准备用那个上位机来控制STC8实现一样的功能。

20、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›老鸟反刍/吐槽,新手乐园,毕业设计›STC32驱动一位数码管的显示


17#回复:
就用共阳,灌电流也不是不行,电流要求高的,就加三极管。


21、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›作品展示›嘉立创的免费板子来了 成功焊接


16#回复:
嗯,因为面对的是广大初学者,每个人擅长的方面不一样。
共同促进。


22、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›综合讨论›STC-USB-LINK1D插上电脑后蜂鸣器一直响。|已解决 ...








8#回复:
https://www.stcaimcu.com/data/attachment/forum/202407/07/195650z9ffw2r8zds9duq8.jpg

看一下STC-TOOL的pdf文档,里面有详细的说明和使用方法。
看看你是属于驱动不对,刷程序不对还是别的。


9#回复:
安装步骤也给你来一下:
https://www.stcaimcu.com/data/attachment/forum/202407/07/200130zp8iuz92l158lu14.jpg
https://www.stcaimcu.com/data/attachment/forum/202407/07/201443kh6lelltg66llhm6.jpg
https://www.stcaimcu.com/data/attachment/forum/202407/07/201528l2hhlk9hzkxfxffl.jpg
23、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›C语言,汇编语言,Proteus, STC15W4K32S4系列MCU软件仿真›8C芯片,ET2未定义的情况,请教一下

9#回复:
我特意把STC8C的头文件搞下来看了一下,如你所说,没有ET2
https://www.stcaimcu.com/data/attachment/forum/202407/07/192637he7j6smwszkmgj86.jpg

但是你得明白在8C里ET2是干嘛的,对不?
这时候我凭经验看,是定时器2的使能,不就是允许/禁止定时器2的中断嘛,因为Enable Timer2,缩写为ET2。

但做技术不允许猜测,所以我就继续帮你看。
我没用过8C,为了回答这个问题,我就得看8C的手册{:4_165:}
然后在手册里找到了ET2的说明
https://www.stcaimcu.com/data/attachment/forum/202407/07/192818g8jiez6iq66j0200.jpg

属于IE2,中断允许寄存器2。

然后我继续往下看
https://www.stcaimcu.com/data/attachment/forum/202407/07/193205ows6kzd1tljsjpqk.jpg

所以,到这里,你就有办法了啊。
甭管头文件有没有,你想用,还不想或不会修改头文件(当然,一般建议不要改,听说离职的工程师会在离职前瞎改,哈哈,开个玩笑)
那法子不就来了嘛
IE2 |= 0x04;
这不就把ET2单独进行了一次赋值为1嘛。
到这里其实已经可以算结束了,但是你可以在未来不断提高的路上,让别人知道你这一步是做什么,增强一下程序的可读性,
那就在前面宏定义#define ET2 0x04
然后在定时器2的允许时,把IE2 |= 0x04;换成IE2 |= ET2;这样不仅能实现,还能知道你是做什么。


这是一种方法,
另外一种就是常用的一种移位操作,也能提高程序的可读性。
IE2 |= (2<<1);//通过移位操作实现

现在相当于是3种方式来表达同一个东西,但万变不离其宗,你只是在操作ET2,却有好几种方式去实现。
玩的花了,见笑。{:4_183:}

感觉已经相当于发了一个帖子了。神农鼎前辈怎么看,哈哈。

11#回复:
其实也不是,仅是个人见解,您听一下,采不采纳不重要。
比现有的稍微加一点点“花活”。。。
或者就两手准备,一是还是保留现有的方式,再增加一种稍微花一点的方式。
以后的以后,库是趋势,类似于CUBEIDE也是趋势。哪怕就是全部用#define加三目运算符组成库都可以,这样一来,库函数简单好用,还有寄存器版本的背书。
再者,初学者到一定程度上,对C语言的掌握是需要有进步的,也会有更高层次的需求。加入另一个稍微比现有加一点点难度的版本,也体现STC本身是具备可以更高的level。
最后,如果将来有了arm的内核,库函数不仅不可避免,也一定会有更加上难度的C。同时官方例程也能来点逻辑和编程思维的引导,会更加锦上添花。

17#回复:
不客气,还是得多花些精力放在基础的中断、定时器上,养成一个完善的习惯,以后肯定偷着乐{:lol:}

24、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›软件库函数/原理图库/PCB库/最小包装›STC15F2K60S为什么调用函数库中的串口输出全是乱码 ...

板凳回复:
https://www.stcaimcu.com/data/attachment/forum/202407/11/162500pzaux3etz4afpu8q.png https://www.stcaimcu.com/data/attachment/forum/202407/11/162506c0hbpp4mp0zqkf39.png

问题都给你标出来了,自己看下。

25、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›综合讨论›keil乱码现象

地板回复:
应该说的是编译过程中有问题,然后修改路径为英文后搞定了。
建议问题最好能是有头有尾,方便别人帮你回答。

26、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›其他技术交流›关于通用库(驱动库)函数管理

地板回复:
工具是没有,但各种各样的派、uno是可以的,因为满世界的例程基本够支撑了

27、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›USB:USB-CDC虚拟串口/就是串口,一箭双雕之USB转双串口,[鼠标+键盘]的HID复合设备›USB下载无法识别和你的布线无关 | 偷工减料的 USB供电线 ...




9#回复:
所以啊,数据线就是数据线,供电的只能供电。使用的时候到处是细节。

28、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC›参考开天斧官方例程,就是套用公式,计算不出温度值,不 ...

7#回复:
正好写过这个,几乎和你一模一样的,只是我用的纯库函数:串口发AD值,同时OLED显示AD和温度计算值。
(补充说明:全局和局部变量有区别,不会造成错误)

先来现象:
https://www.stcaimcu.com/data/attachment/forum/202407/16/191901xn33adw933ng59i8.jpg

然后是程序:
1、先看ADC转换和温度计算
https://www.stcaimcu.com/data/attachment/forum/202407/16/192138e5to5t766tqj7zw0.jpg

2、主程序中每1000ms读出并显示AD转换值和温度计算值
https://www.stcaimcu.com/data/attachment/forum/202407/16/192233en111l42kjoqz2g1.jpg

8#回复:
float B = 3435.0;
Temperature = 1.0 / (1.0 / T2 + log(R2 / R1) / B) - K + 0.5;
这就是你的代码和官方参考代码的区别。
材料系数不同可以理解,因为你用的硬件不一样
但是公式是和参考公式不一样。如果材质、阻值都有区别,系数也有区别。还是重点看下你的公式。

13#回复:

https://blog.csdn.net/qq_41422009/article/details/130884309
没怎么用过ntc
你可以参考下这篇文章。
当然,排除ntc的好坏也很重要

14#回复:
说实话,如果不是板子上有这个,我这辈子都不太可能用ntc,也就ds或者dht

24#回复:
我其实一开始也想说10换100试试,但是没怎么用过ntc,就没说。因为这部分经验为0

29、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›段码LCD/80mA大电流LED数码管自动刷新显示/RTC实时时钟/触摸按键/低功耗›简简单单 STC单片机RTC专用的星期计算代码 ...

7#回复:
公式不错
不想算的,就读,哈哈
接收←{"success":"1","result":{"timestamp":"1720104168","datetime_1":"2024-07-04 22:42:48","datetime_2":"2024年07月04日 22时42分48秒","week_1":"4","week_2":"星期四","week_3":"周四","week_4":"Thursday"}}

30、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›作品展示›嘉立创的免费板子来了 成功焊接

10#回复:
直接8266,也有很多。但是主控+8266的模式,相对比较考验串口和逻辑,外加调用的api接口读回来的json格式,考验数据处理。

14#回复:
嗯,加油。如果想搞IOT,物联网方向,主控+ESPxxxx或者ESP32都可以,适合自己的就是最好的,但还是用STC来打基础,相对功能也不弱,而且好理解,还不用担心断供。

31、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›老鸟反刍/吐槽,新手乐园,毕业设计›按照手册搞的最小系统提示设备描述符请求失败 | 用直插 ...

26#回复:
据我所知道的,目前在校的基本都是EDA打板,偶尔自己飞个线,也算一门技能。但是一开始自己手焊会很累,算是过来人,当初我也这样,只是我自己醒悟的早。哈哈

32#回复:
嗯,可能我多嘴了,哈哈,但是建议是真心的。

32、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16›串口要求停止位为2的问题


6#回复:
你可以设置串口工作在模式3,
串行通信模式 3 为 9 位数据异步通信 UART 模式,其一帧的信息由 11 位组成:1 位起始位,8 位数据位(低位在先),1 位可编程位(第 9 位数据) 和 1 位停止位。发送时可编程位(第 9 位数据)由 SCON 中的 TB8 提供,可软件设置为 1 或 0,或者可 将 PSW 中的奇/偶校验位 P 值装入 TB8(TB8 既可作为多机通信中的地址数据标志位,又可作为数据的 奇偶校验位)。接收时第 9 位数据装入 SCON 的 RB8。TxD 为发送端口,RxD 为接收端口,以全双工模 式进行接收/发送。
模式 3 和模式 1 相比,除发送时由 TB8 提供给移位寄存器第 9 数据位不同外,其余功能结构均基本 相同,其接收‘发送操作过程及时序也基本相同。
第9位就可以由你说了算,不就实现了吗?


8#回复:
校验可以软件校验啊,呵呵…奇校验 偶校验 和校验 CRC校验,因为有一位可以做奇偶,你要是CRC的话,还是得想办法啊。
没事,条条大路通罗马,适合自己的就是最好的,目的是能到就行。


11#回复:
{:lol:}感谢支持
确实没怎么碰到过双停止位,市面上的usb转串设备见过不少,没碰到过。可能我接触面狭窄。
本意其实是想说,不管什么校验,最后都软件去校验,实现软硬结合。毕竟MCU不是万能的。


33、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›其他技术交流›关于STCISP的串口 能增加字体设置 跪求 尤其有强迫症患 ...


地板回复:
好像还真没有,干脆自己写一个串口助手得了{:4_165:}


6#回复:
不不不,
第一个问题:
你说字体不能随意修改,这个好像确实不行,一般一个调试工具简单就好,这个没关系,你想改,也不是不行,直接改系统字体试试,兴许是可以的。

STC-ISP本身具备的功能非常多,为啥一直不停的升级,一是为了兼容更多更新的芯片,二是不断增加更多的功能,兴许以后会加入可以按照需求修改字体的,时间问题而已。
我不是STC官方员工,但良心说一句:一版软件来回的测试,从最初的基础功能不断加功能,写出来程序,得不断地调试和修改,其实很不容易的。
第二个问题:
如果我没有领会错你的意思的话,你看下:
https://www.stcaimcu.com/data/attachment/forum/202407/04/230158z7jj4xxrr7sx5wwu.png https://www.stcaimcu.com/data/attachment/forum/202407/04/230207lvbnqpynw2xnnbin.jpg

是可以同时多开的,只要你有需要,单机双串口或者双机串口,都可以。没有跟你纸上谈兵,双机串口通信聊天的事我干过,哈哈
你可以再试试双开STC-ISP,试试8串口行不行
https://www.stcaimcu.com/data/attachment/forum/202407/04/230800twn9qnin5qnckkjc.jpg
https://www.stcaimcu.com/data/attachment/forum/202407/04/230811yrl7ux7wls7sw3nw.jpg



7#回复:
一个单片机上也就4个串口,就算4个串口全用,也是满足的。涉及到双机或者多机通信,或者外设串口通信,是够用的。



34、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›综合讨论›双串口芯片stc8h2k08是怎么个双串口法?


6#回复:
双串口的解释别人已经答了,我就不啰嗦了。
主站1 01
主站2 02
从站1 03
从站2 04
...      ...
最简单的描述:对每一个需要通信的MCU进行编码,只需要读是不是来自给它的指令,是就用,不是就不管,就实现了你说的过滤。
至于主动 被动接收在于你的程序怎么写。因为串口通信是可以全双工的。

7#回复:
那接下来的想法就是。有主机ABC。分别需要对从机123 4 5进行采样。为了使主机ABC不互相干扰。需要对他们的轮询命令进行屏蔽。这时候就主机就要屏蔽掉其他主机的轮询命令和操作命令。想法就是这么个想法。
每一个MCU都有了编码了,至于是屏蔽还是接收,接收后处理不处理,还是转发,都可以。

14#回复:
要纠结的话,同一优先级,也会有很轻微的先后,可以忽略不计。
但是01 02 03…编码,或者叫帧头+地址码+功能码+校验码+帧尾的方式,是能实现你的需求的。长度你自己可控啊。
比如
FF FE 做帧头
01
02…做地址码
03 04 78 89 90 1A做功能码
FE FF做帧尾
根据地址码再确定处理与否
把串口当作类modbus来用也不是不行。

18#回复:
那你肯定也是先采集数据,然后往外发或者到云端完成数据的发送和处理,大家都明白你的意思,重要的是思路和方法,不然怕是没有mcu能满足你。

35、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›综合讨论›求助一下P_SW1 = 0X20; 同时也P_SW1 = 0X10;

13#回复:
确实不可以同时的
但你可以考虑分时复用啊,比如充电指示呼吸和调整亮灭冲突,那就干一个事儿的时候另一个事儿不能干{:smile:}
还是充分考虑功能吧,尽量别因为硬件限制影响功能,如果实在想,就换个稍微管脚多点的。

36、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC›adc_vref+,如果没用adc功能,该引脚可以悬空吗? ...

7#回复:
建议您还是看下手册的建议,拿STC8H8K64U来说:
在2.5.3、2.5.7-13的章节(除了2.5.9的PDIP40封装),每一个不同封装的最小系统管脚图,都在图中明确标红内容
https://www.stcaimcu.com/data/attachment/forum/202407/07/142235fqzhpi5k00qrvnvq.jpg

而在STC8H-20240527版手册中P1006,也进行了明确说明
https://www.stcaimcu.com/data/attachment/forum/202407/07/143833j25qjxw5c71k5j0i.jpg


官方手册的意义是提供参考,同时也提供说明和建议。
我们自己用的时候,不一定能知道为什么,但知道怎么用就够了。

其他型号的单片机,也有专门的标红。
希望能帮到你。

37、
»STC32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›C语言,汇编语言,Proteus, STC15W4K32S4系列MCU软件仿真›8C芯片,ET2未定义的情况,请教一下

9#回复:
我特意把STC8C的头文件搞下来看了一下,如你所说,没有ET2
https://www.stcaimcu.com/data/attachment/forum/202407/07/192637he7j6smwszkmgj86.jpg

但是你得明白在8C里ET2是干嘛的,对不?
这时候我凭经验看,是定时器2的使能,不就是允许/禁止定时器2的中断嘛,因为Enable Timer2,缩写为ET2。

但做技术不允许猜测,所以我就继续帮你看。
我没用过8C,为了回答这个问题,我就得看8C的手册{:4_165:}
然后在手册里找到了ET2的说明
https://www.stcaimcu.com/data/attachment/forum/202407/07/192818g8jiez6iq66j0200.jpg

属于IE2,中断允许寄存器2。

然后我继续往下看
https://www.stcaimcu.com/data/attachment/forum/202407/07/193205ows6kzd1tljsjpqk.jpg

所以,到这里,你就有办法了啊。
甭管头文件有没有,你想用,还不想或不会修改头文件(当然,一般建议不要改,听说离职的工程师会在离职前瞎改,哈哈,开个玩笑)
那法子不就来了嘛
IE2 |= 0x04;
这不就把ET2单独进行了一次赋值为1嘛。
到这里其实已经可以算结束了,但是你可以在未来不断提高的路上,让别人知道你这一步是做什么,增强一下程序的可读性,
那就在前面宏定义#define ET2 0x04
然后在定时器2的允许时,把IE2 |= 0x04;换成IE2 |= ET2;这样不仅能实现,还能知道你是做什么。


这是一种方法,
另外一种就是常用的一种移位操作,也能提高程序的可读性。
IE2 |= (2<<1);//通过移位操作实现

现在相当于是3种方式来表达同一个东西,但万变不离其宗,你只是在操作ET2,却有好几种方式去实现。
玩的花了,见笑。{:4_183:}
































页: [1]
查看完整版本: 荣誉版主 Yim_Hom,2024/7,技术漫步,共享,技术回复 索引