有个程序不知道怎么写,求思路
2023-8-1 13:23 来自 sky999 发布@ 综合讨论
编码器对单片机输出脉冲,速度是1分钟3500转,1转输出600个脉冲,
单片机每收到17个编码器脉冲,输出2个脉冲,
这程序好烧脑,想了很久都不知道怎么写,求思路
单片机每收到17个编码器脉冲,输出2个脉冲,
这程序好烧脑,想了很久都不知道怎么写,求思路
关于STC8G1K17-SOP16 单片机数据的问题
2023-7-29 20:59 来自 琪琪鸭 发布@ 综合讨论
STC8G1K17-SOP16 单片机数据的问题 定义了a1 - a7 位unsigned long 类型变量 但是运算出来的数据程序 a1 = 300 * 400; 计算的结果不是120000
stc.h头文件编译时不成功
2023-7-29 09:59 来自 此生无悔 发布@ 综合讨论
本帖最后由 此生无悔 于 2023-7-29 10:06 编辑
感觉莫名其妙,这stc.h文件咋还能编译出问题,咋看都不像啊
把这些定义注释后再编译就没有报错,但是出现40个警告{:funk:}
感觉莫名其妙,这stc.h文件咋还能编译出问题,咋看都不像啊
把这些定义注释后再编译就没有报错,但是出现40个警告{:funk:}
不停电下载编译错误
2023-7-28 23:00 来自 此生无悔 发布@ 综合讨论
更新后得STC32G资料包中CMCC中没有了stc.h文件,那使用HID不断电下载是将stc.h替换成STC32G.h文件吗,但是替换后编译出错,按照STC32G开发视频一步一步抄下来
求指点{:cry:}
有关中断中的变量问题
2023-7-28 06:53 来自 QQ624353765 发布@ 综合讨论
本帖最后由 QQ624353765 于 2023-7-28 08:56 编辑
在中断中声明一个data区变量,这个变量是每次进入中断后使用栈顶的地址还是像全部变量一样使用固定地址
如果地址是浮动的为什么中断中的变量用一个就少一个
在中断中声明一个data区变量,这个变量是每次进入中断后使用栈顶的地址还是像全部变量一样使用固定地址
如果地址是浮动的为什么中断中的变量用一个就少一个
关于IO推挽输出最大20mA电流的问题
2023-7-25 12:51 来自 sky999 发布@ 综合讨论
IO口接了个20mA电流的LED,我接限流电阻200R,最大19mA,我是想问,我这样直接IO口驱动这个19mA的LED,不加三极管,IO口会不会容易损坏?,整个单片机总电流不超过50mA,
STC8G2K64S4的AD采样有问题,10路AD一起采样,变换程序总有一路采集值为零
2023-7-25 11:16 来自 Inver1688 发布@ 综合讨论
问题如下,两种不同的代码,每次都有固定的一路采样的AD值为零,但为零的如果单独采样则值是正确的
代码一如下,其问题是 ADC_N_L1采集的AD值始终为零,其实这个口的外部电压为电源电压一半,单独采样则AD是512
void ADC_ISR() interrupt 5
{
ADC_CONTR &=~ADC_FLAG; //清除中断
if(AD_conver_ii == 0)
{
ADC_ref_avg= (ADC_RES<<8)|ADC_RESL;
Ref_flg =1;
ADC_CONTR = ADC_SELECTCHS0;
}
else if(AD_conver_ii == 1)
{
ADC_TEST= (ADC_RES<<8)|ADC_RESL;
DC5v_flg =1;
ADC_CONTR = ADC_SELECTCHS1;
}
else if(AD_conver_ii == 2)
{
代码一如下,其问题是 ADC_N_L1采集的AD值始终为零,其实这个口的外部电压为电源电压一半,单独采样则AD是512
void ADC_ISR() interrupt 5
{
ADC_CONTR &=~ADC_FLAG; //清除中断
if(AD_conver_ii == 0)
{
ADC_ref_avg= (ADC_RES<<8)|ADC_RESL;
Ref_flg =1;
ADC_CONTR = ADC_SELECTCHS0;
}
else if(AD_conver_ii == 1)
{
ADC_TEST= (ADC_RES<<8)|ADC_RESL;
DC5v_flg =1;
ADC_CONTR = ADC_SELECTCHS1;
}
else if(AD_conver_ii == 2)
{
请教,不明原因的代码区溢出复位
2023-7-25 00:23 来自 kbxxa 发布@ 综合讨论
单片机型号是STC32G12K128。
自己画板子弄了一个带触摸屏的小玩意,,目前还是在调试阶段,代码量不多,出问题的是一个TFT屏幕画方框的函数以及触摸屏的触摸。
具体故障就是,如果整个程序调用了这个画方框的函数,然后任何时候使用触摸就会触发复位(不触摸屏幕就不会),通过查询复位标志寄存器RSTFLAG是第2位代码区溢出标志ROMOVF置1了。
但是注释掉用到这个画方框的函数的地方,使用触摸屏完全正常;或者调用很多次这个画方框函数,只要不触摸屏幕也没事。
这是整个程序编译后的大小:
14662
这是设置,基本都是照着参考手册设置的:
14667
这是TFT屏幕画方框的函数lcd_box,以及上一级画方块的函数lcd_block,不过调用这个画方块的函数不会造成复位
(我这个画方框就是连续画4次,长度为1以及宽度为1的“方块”,各两次):
1466314664
触摸屏使用的是中景园的3.5寸的电容屏裸屏,屏幕I
STC8G2K64S4,总计使用10路AD,问题如下
2023-7-24 19:10 来自 Inver1688 发布@ 综合讨论
1.下面两种代码,每种代码都有一路的AD值为零,实际上AD通道的模拟值不为零
代码一 的ADC_N_L1值每次都是零但如果单独只有这一路采样得到AD值512换算后与外部模拟值相吻合
void ADC_ISR() interrupt 5
{
ADC_CONTR &=~ADC_FLAG; //清除中断
if(AD_conver_ii == 0)
{
ADC_ref_avg= (ADC_RES<<8)|ADC_RESL; //内部1.91的AD值
Ref_flg =1;
ADC_CONTR = 0xc0;
}
else if(AD_conver_ii == 1)
{
ADC_TEST= (ADC_RES<<8)|ADC_RESL;
DC5v_flg =1;
ADC_CONTR = 0xc1;
}
else if(AD_conver_ii == 2)
{
ADC_N_L1= (ADC_RES<<
代码一 的ADC_N_L1值每次都是零但如果单独只有这一路采样得到AD值512换算后与外部模拟值相吻合
void ADC_ISR() interrupt 5
{
ADC_CONTR &=~ADC_FLAG; //清除中断
if(AD_conver_ii == 0)
{
ADC_ref_avg= (ADC_RES<<8)|ADC_RESL; //内部1.91的AD值
Ref_flg =1;
ADC_CONTR = 0xc0;
}
else if(AD_conver_ii == 1)
{
ADC_TEST= (ADC_RES<<8)|ADC_RESL;
DC5v_flg =1;
ADC_CONTR = 0xc1;
}
else if(AD_conver_ii == 2)
{
ADC_N_L1= (ADC_RES<<
SOP16封装的供货情况 ?
2023-7-24 11:37 来自 sky999 发布@ 综合讨论
SOP16是以后要停产吗?感觉现在SOP16越来越少,而且那些卖SOP16也越来越贵,比TSSOP20贵,很多智能家居的东西,用SOP16脚是刚好的,差不多就多1~3个脚,用TSSOP20就多5~7个脚,密脚在批量的时候,检查还是觉得有些麻烦的,为什么不考虑推些普通低价的SOP16脚的,不带那么多功能的
STC8G2K64S4的ROM区读取内部参考信号源1.91V问题
2023-7-24 08:53 来自 Inver1688 发布@ 综合讨论
1.官方手册C915668_单片机(MCU-MPU-SOC)_STC8G2K64S4-36I-LQFP48_规格书_STC(宏晶)单片机(MCU_MPU_SOC)规格书.pdf并没有
代码如下
BGV =(int code *)0xfdf7;
printf("\r\nRAM 1.19 %d",*BGV);
发现串口打印的值不对,难道0xfdf7有错?
谢谢!
代码如下
BGV =(int code *)0xfdf7;
printf("\r\nRAM 1.19 %d",*BGV);
发现串口打印的值不对,难道0xfdf7有错?
谢谢!
在查看STC8G2K64S4官方手册渐变灯的例子问题如下
2023-7-21 13:25 来自 Inver1688 发布@ 综合讨论
19.2.3 PWM实现渐变灯(呼吸灯)部分代码如下
_push_(P_SW2);
P_SW2 |= 0x80;
PWM00T2 = val;
_pop_(P_SW2);
请教下什么情况下使用_push_( );_pop_( );官方手册哪里有说明?
谢谢!
_push_(P_SW2);
P_SW2 |= 0x80;
PWM00T2 = val;
_pop_(P_SW2);
请教下什么情况下使用_push_( );_pop_( );官方手册哪里有说明?
谢谢!
STC32G12K128芯片快速启动选项有哪些?
2023-7-12 17:36 来自 chint2012 发布@ 综合讨论
STC32G12K128用来做漏电断路器产品,一启动就要ADC采样计算跳闸,从上电到跳闸在60mS以内完成,这个单片机还有那些方法提高启动速度,最好是上电几ms就能进入到main() 主函数????
STC8H3K64S2的xdata使用就跑飞
2023-7-12 09:31 来自 zs17771433015 发布@ 综合讨论
请问使用Xdata需要注意什么? 同时我使用IAP读写,地址从0000H到 0A00H
用STC8H4K64TL-45I-LQFP32 做了个水泵控制器,刚开始学习,不对的地方请指教
2023-7-11 11:50 来自 小龙哥 发布@ 综合讨论
水泵控制器设计要求一、 一个开关机键,关机后设置的数据要存储;二、 三个快捷档位键,烤程序时有默认设置,也可根据需要自己定义,设置水泵开启时间;三、 一个设置键,可设置档位数据,就是水泵开启工作时间,以及达到设定湿度时,水泵停止四、 3位数码显示,交替显示温湿度,温度有一位小数点,湿度无小数位,设置时显示设置数据,具有3个档位指示灯和泵工作指示灯;五、 供电采用5V充电器供电,水泵工作电流不大于600MA;六、 原理路在附件里面;1399814012
[/ali
[/ali
求助:Keil示波器无法使用
2023-7-10 17:40 来自 棒打鹧鸪 发布@ 综合讨论
在Keil中对STC8G1K08A进行串口仿真,如何使用Logic Analyzer?
13968
13969
13968
13969
12C单片机的P2.0不能输出低电平
2023-7-8 16:34 来自 乱世百晓生 发布@ 综合讨论
P2口其它都没问题,就是P2.0输出不了低电平,永远是高电平,配置过各种IO口模式都不行,换了6片都是一样,P2.0给硬件上浮空也没用
32F外部时钟问题,
2023-7-7 17:11 来自 Mr.Yan 发布@ 综合讨论
关于32F时钟的选择问题,如果我想系统时钟SYSCLK为60M,我就可以走1号路线实现,如下图:
13854
那我如果使用外部时钟作为时钟源同样想系统时钟SYSCLK为60M,我晶振频率应该选多大的,6M,12M,还是24M(只要PCKI输出满足6M就行么)?
经过PCKI,PLL,CLKSEL最终的始终是多少?我看时钟管理篇下边解释说是最大64M,因为PLL输出要么96,144或者他们的2分频,那后边SYSCLK最大也就是48M,不知道我理解的对不对?