神农鼎 发表于 2024-2-3 10:51:56

荣誉版主 山东.王,2024/2 技术漫步,共享,技术回复 索引

荣誉版主 山东.王,2024/2 技术漫步,共享,技术回复 索引

王昱顺 发表于 2024-2-3 13:48:10

本帖最后由 王昱顺 于 2024-2-29 16:30 编辑

2024/2技术漫步

月末了,正好整理一下

开源项目推荐:

全自动蓝牙下载器,简单设置一下STC-ISP,无需更改代码即可直接用于无线下载和调试STC全系列单片机芯片
链接:全自动蓝牙下载器!使用STC8H2K08U和JDY33模块制作, 可通讯可下载 - 有ICache的STC32F12K54测试版块,FOC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

技术文章:有关位置环的两种计算累计位置方法
链接:【STC-FOC Lite】 FOC青春版,更少的成本,更简单的构造 - 第6页 - 有ICache的STC32F12K54测试版块,FOC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
56#



分享的一种蜂鸣器报警音制作方法:求助,蜂鸣器火灾报警声制作 - 第2页 - 老鸟反刍/吐槽,新手乐园,毕业设计 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com) 11#
前面部分的回答中简述了如何快速制作可以变调的报警声音。


以下技术回复仅挑选有学习价值的:
1.提问和链接请问下如何用单片机控制无极变光的家用电灯 - 综合讨论 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
回答:

点评:带协议的设备控制的时候可以不用老想着破解协议,直接二次遥控也是很方便的。

2.提问和链接上电瞬间IO口控制 - 综合讨论 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
回答:


点评:STC8/STC32上电默认都是高阻模式,可以配置完寄存器以后再设置相应的IO口状态,这样可以防止IO口输出了错误的电平。

3.提问和链接能不能详细介绍下 STC8H8K64U 上电运行后内部晶振的启动顺序 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
回答:

点评:程序中的MAIN_Fosc只是一个宏定义,方便波特率计算或者其他相关频率计算的,更改这个值并不能实际更改单片机的运行频率。
更改还需要在STC-ISP中更改后下载,才能生效。

4.提问和链接请教3:AD变换接传感器正常,断开后不断跳变,不稳定 - 综合讨论 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
回答:

点评:IO口如果处于高阻且外边什么都没接的话,就是会感应到各种噪声信号的,所以想要ADC稳定得到信号,和IO口之间的连接一定要足够可靠。

5.提问:main.c(105): warning C316: unterminated conditionals   这个警告一直存在,我看了好几次,没看出是啥问题????
链接:最佳入门多线程示例讲解-核心代码简单易懂,仅44行代码 - 第3页 - FreeRTOS/实时操作系统/文件系统/嵌入式系统软件,TFT-GUI/uGFX - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
回答:可能是包含的头文件.h里面最后缺少了#endif导致的





6.提问和链接:请问下这种显示屏的连接方式是什么?|已解决(导电橡胶连接器) - 老鸟反刍/吐槽,新手乐园,毕业设计 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:这个叫导电橡胶,中间黑色的可以导电,主要是因为这种液晶玻璃基板上不好焊接,就使用这种方式来引出导线



7.提问和链接:请问下这个排针应该向上焊还是向下焊?|已解决 - 老鸟反刍/吐槽,新手乐园,毕业设计 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:按照使用习惯应该是背面的线圈部分朝上,排针焊到芯片这一面。这样排针和线不会阻挡nfc卡


点评:应该根据实际的遮挡和使用习惯来进行焊接和朝向确定。



8.提问和链接外部晶振切换问题 - 综合讨论 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
回答:





9.提问和链接:请问下如何用单片机控制无极变光的家用电灯 - 综合讨论 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:没有红外管可能是用的433M/315M无线通信。
简单的改造方法就是拆一个遥控器,然后MCU控制遥控器的按键。
这样相比于找协议代价最小



10.提问和链接:为什么1206的贴片电阻100K可以接220V - 其他技术交流 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:


点评:电路并不是很符合规范,有可能造成电阻的发热。



11.提问和链接:对应STC8F2K16S2,Keil中Device是选择STC8F2K64S4 Series吗? - 其他技术交流 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:keil里面选择的只是一个芯片系列的名称,你的理解是正确的。
就算超过了原本的code空间,stc-isp在下载时也会截去后面多出来的部分的
点评:引用最终解决方法







12.提问和链接:STC ISP是不是有波形显示的功能,类似示波器的功能。 - ISP下载/做自己的ISP - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

回答:是的,叫串口绘图功能。不过想要实现类似示波器的功能还需要自己芯片内实现数据读取后通过串口发出来



13.提问和链接:关于IO输出电流的问题 - I/O读写及点灯,外部中断 ,所有I/O都支持的普通I/O中断,按键扫描 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:第一个问题,首先这个20ma是安全电流,就是说输出20ma以下都是安全的。以上虽然不会立刻芯片爆掉,但总归是会有发热影响的。
其次,数码管作为发光二极管是要采用二极管导通压降计算电流的,实际的电流计算应该是(电源电压-发光二极管导通压降)/总电阻(也就是限流电阻),因为二极管并非感性元器件,所以电流计算并不能按照百分比削弱,需要按照导通的最大峰值。使用了pwm,削弱的只有等效亮度和平均功率。
最后的亮度不均匀问题,最好的解决方案应该是通过软件实现每个段的动态刷新,这样同一瞬时时间只亮一个段码,就不会出现因为电流分配问题出现的亮度不均了



14.提问和链接:当前最新版ISP下载工具V6.92L的系统频率选项不够 | 都可以手工输入的 - ISP下载/做自己的ISP - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:



15.提问和链接ISP无法下载程序给STC32G12K128 | 已解决,线出了问题 - ISP下载/做自己的ISP - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
回答:


点评:线也可能出问题,勿要粗心大意



16.提问和链接:一直不明白的定义 - 综合讨论 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:不是的,这个只是给编译器用的,真正的运行频率只能通过STC-ISP设定或者内部IRC频率寄存器来调节。
这个只是方便程序进行调用计算,比如说波特率需要使用你的主频来计算,外部改成24Mhz,同步更改FOSC的定义频率,就可以让代码自动计算出来合适的寄存器数值了。
主要作用是让代码自动计算填入,不用改了频率以后还一句一句的把时钟相关的代码都改过来







17.提问和链接:有关 STC32 基准电压的问题 - 开源广场及教学视频交流 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:使用vdd会引入稳压电源的噪声,如果5v的电源特别稳定当然也没问题。
不过实际上会出现单片机带led这种负载引起的电压波动造成adc读数波动。
相比之下,使用2.5V的431进行稳压。这样5V/3.3V的电压波动就不会造成adc噪声引入。
并且单片机驱动负载的时候不会使用参考电压的电源,使得参考电压不受到干扰很稳定。



18.链接:有关 STC32 基准电压的问题 - 开源广场及教学视频交流 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com) 5#


回答:看到dcdc和ldo级联,电源设计上我也插两句嘴
设计上一般要从功率进行分类
同电压情况下,舵机/电机属于大功率
led,蜂鸣器,数码管类属于中等功率
读取开关,芯片通讯,信号采集属于小功率
按照分类,大功率需要单独供电,中等功率推荐使用三极管或者驱动芯片进行隔离,小功率可以直接跟mcu电源接接一起
最经典的错误就是电池供电过dcdc给单片机供5v,然后看到小舵机也是5v的,直接就接上了。殊不知运行起来舵机会使输电压波动,此时如果再采集adc这种,那么采集出来的数据将叠加相当严重的干扰。
更为极限的例子就是使用了5v的小电机,觉得功率不大就把驱动芯片电源跟mcu电源接在一起了。直流电机启动瞬间可以视为短路,如此便直接将vcc拉到了mcu复位电压以下,造成芯片不断重启/程序跑飞。这也是相当严重的电源链接设计失误
所以,想要稳定就要留“余量”
比如说电机驱动要单开一路dcdc,这样拉低电压只会造成母线电压略微降低,另一边给mcu的电压几乎不会变化。而基准芯片也是这样,因为电压较低,所以供电电压就算波动了500mv这样严重的情况,参考依然是准的,抗干扰能力就强了
点评:有关电源结构设计的一些思路



19.提问和链接STC8G的I2C还需要外部上拉电阻吗? - SPI/I2S/I2C,DMA支持的3组SPI和I2C,一线制温湿度传感器 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:
实际测试。直接使用IO口的准双向模式也能用,因为内部带了一个比较大的上拉电阻了。
不过对于屏幕类不需要读的应用,可以直接设置强推挽模式,抗干扰更强。如果是准双向发现通讯不稳定,可以使能内部独立的上拉电阻



20.提问和链接:我购买的下载器在使用的过程中经常会烧掉 - ISP下载/做自己的ISP - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:有可能是两边都给mcu供电,然后两边的降压/稳压芯片冲突了。
因为制造误差,假设A端稳定电压实际是5.1V,B端实际是4.9V,这两边发现电压不对就开始调节,结果就形成了正反馈导致电流异常大而烧掉,而mcu因为只是并联接入,两边流过大电流并没有流入mcu。所以mcu应该不会烧
解决方法也很简单,如果有两个电源,那么选择其中一个供电,另一个仅共地即可



21.提问和链接请教I2C通信问题 - SPI/I2S/I2C,DMA支持的3组SPI和I2C,一线制温湿度传感器 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:






22.提问和链接:用STC32G内置ADC测量5V电压,读数非常离谱 - ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)




回答:注意一下adc数据的对齐方式和拼接顺序,接到vcc如果中间没什么东西的话应该是固定4095(12位adc最大值)。
有可能是选择了左对齐,最右边空出来了四个0。或者是数据高位和低位拼接错了
点评:最终使用仿真解决了问题,还是数据的读出操作出了问题。还是要利用好仿真工具啊。





23.提问和链接:求助,蜂鸣器火灾报警声制作 - 老鸟反刍/吐槽,新手乐园,毕业设计 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:报警器声音的精髓就是变调和强度改变。也就是同时控制pwm的周期和占空比
举一个简单的小例子,想要发出呜呜的警笛声,分析可以得到音调是从低到高再到低。音量也是从低到高再到低,使用定时器或者其他时间长度控制手段,按照固定周期改变不同步长的方式就可以做到类似警笛的声音实现。
建议使用数组关键点+线性查补。这样可以方便实现非线性变调控制





24.提问和链接:请大师们也给个STC单片机的性能排列表或图 - 综合讨论 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

回答:就目前来看
stc32f算力最高,理由(拥有浮点加速,60mhz+主频)
stc32g其次,主频不是很高但是是32位有优势
stc8内核一致,性能还可以,拥有很多特化型号
stc15/12稍微老一些的,算力比stc8h要低一些
stc89最老的版本,算力最小
点评:合适的最好,算力高低仅是评判标准之一



25.提问和链接冲哥32位8051视频教程疑问解答贴 - 第22页 - 开源广场及教学视频交流 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com) 216#


回答:这个是左移符号,作用是将数据向左移动一位,空余补0。
举个例子,假如现在temp等于二进制10001011,进行左移后会变成00010110。
结合例子中的cy位,意思是最高位(左侧)被挤出去的位就是进位。
还是上面的例子,因为被挤出去了一个1,所以算作进位,cy就为1了



26.提问和链接:STC8G1K08A: 可以利用EEPROM存储代码吗? - 综合讨论 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:如果多出来的数据是固定的数组这种数据,可以往eeprom里面存。这样还能节省一些下载时间。
如果是程序运行的代码还要再加,建议直接换芯片最方便



27.提问和链接:复习冲哥I2C总线读写函数的疑问 - 开源广场及教学视频交流 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:首先回答是否可行的问题,0x01是十六进制表示方式,与1等效
其次回答包含方向位的问题。
一般来说IIC有两种表示地址的方式。
第一种是分成读地址和写地址,比如说0x80和0x81就是一对读写地址。这样可以直接发送
第二种是使用高7位作为地址,最后一位换成1或者0。比如上面的地址0x80,+0可以表示读,+1可以表示写



28.提问和链接:STC32仿真后硬件下载失败,一直用的USB下载,但是没法显示HID模式 | 已分析出原因 - 仿真/编译器/头文件 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:


点评:走的TypeC口,但是TypeC口接了一个ch340,所以下载器的串口信号被ch340截断了。



29.提问和链接:关于IIC的地址 - SPI/I2S/I2C,DMA支持的3组SPI和I2C,一线制温湿度传感器 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:首先你要明白,iic的有效地址是高七位。
这里就产生了一个问题,如何表示这个地址
有将地址放在高七位,最低位补零的。也有把地址放在低七位,最高位补零的。
比如说你的这个0xa0,换算二进制是10100000,显然是高七位存法
同样的,0x50则是01010000,相比上面的向右移动了一位,是低七位存法。
本质上这两个没什么区别
具体使用为什么不行呢?是因为上面两种存法转换成读地址和写地址的算法过程不一样,当然是不能乱用的了



30.提问和链接:请教,我用ADC测直流电压的误差大的原因? - ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:


点评:最后的测试出来的问题是采样电阻设置不合理(太大了),还是梁工的功力深厚,一眼看出电路错误





31.提问和链接:串口和功能冲突 - 综合讨论 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回答:串口使用dma发送,这样就不占用内核时间了,只要保证发送串口数据的那一行代码低于1us即可
或者可以采用pwm脉宽捕获,每次边沿才响应,这样也可以节省大量时间。当然,这里用外部中断也没问题,因为串口走的dma,不会收到单片机核心操作的影响































王昱顺 发表于 2024-3-5 16:49:16

已收到 荣誉版主 荣誉奖 310元,感谢 STC


32位8051-STCAI 发表于 2024-3-5 16:55:57

恭喜恭喜{:4_189:}{:4_189:},3月份继续加油

芯芯向荣up 发表于 2024-3-5 16:56:34

{:victory:}STC与你同行

小太阳 发表于 2024-3-5 17:02:49

恭喜恭喜{:4_189:}{:4_189:}

浅夏星空 发表于 2024-3-5 17:07:07

恭喜恭喜{:4_189:}{:4_189:},3月份继续加油{:victory:}

21cnsound 发表于 2024-3-5 22:01:08

恭喜恭喜
看到我的问题也在列表中

jwg 发表于 2024-3-7 13:45:29

恭喜恭喜
页: [1]
查看完整版本: 荣誉版主 山东.王,2024/2 技术漫步,共享,技术回复 索引