一箭双雕之USB转双串口莫名其妙的干扰
2023-4-11 13:45 来自 HengTuo 发布@ 综合讨论
一箭双雕之USB转双串口板HEX模式发送数据F1 01 软件却显示发送数据0D 0A
把无线键盘拆下来 就显示正常,是软件收到干扰,还是硬件收到干扰?
7567
7566
开启串口打印功能后单片机没有执行if语句
2023-4-11 10:30 来自 980578873 发布@ 综合讨论
各位大佬,我经常遇到这个问题:在函数while(1)的大循环里面,如果开启串口打印信息功能,定时计时250mS时间到并没有打开绿灯,或者定时计时250mS时间到了打开绿灯但是到后面1050mS到了绿灯并没有关闭。如果关闭串口打印信息功能,一切正常。这是为什么?如果要开启串口打印信息功能同时也要单片机运行程序正常,怎么解决此问题?
while(1)
{
data_0x10=read_data(0x10);//读取充电盒各种状态的寄存器
ST_CH=0x20&data_0x10;//如果芯片在充电状态,ST_CH==0x20
ST_CH_END=0x40&data_0x10;//如果电池充满电,ST_CH_END==0x40
TI=1;
printf("ST_CH_END is 0x%bx\n",ST_CH_END);//串口打印ST_CH_END状态
while(TI==0);
TI=0;
if(open_lid_flag==1)
{
if(oc_lid_led_5ms==50)
PCA输出PWM改了一点地方也可以?
2023-4-10 19:12 来自 MWX 发布@ 综合讨论
范例中
CCAPM0 = 0x42; //PCA模块0为PWM工作模式
PCA_PWM0 = 0x80; //PCA模块0输出6位PWM
CCAP0L = 0x20; //PWM占空比为50%
CCAP0H = 0x20;
//--7位PWM--
CCAPM1 = 0x42; //PCA模块1为PWM工作模式
PCA_PWM1 = 0x40; //PCA模块1输出7位PWM
CCAP1L = 0x20; //PWM占空比为75%
CCAP1H = 0x20;
我变成这样
CCAPM0 = 0x42; //PCA模块0为PWM工作模式
PCA_PWM0 = 0x80; //PCA模块0输出6位PWM
CCAP0L = 0x20; //PWM占空比为50%
CCAP0H = 0x20;
//--7位PWM--
CCAPM1 = 0x42; //PCA模块1为PWM工作模式
PCA_PWM1 = 0x40; //PCA模块1输出7位PWM
CCAP1L = 0x20; //PWM占空比为75%
CCAP1H = 0x20;
我变成这样
关于STC8H8K64U单片机休眠电流问题,请高手解答。
2023-4-10 17:01 来自 jnyyz 发布@ 综合讨论
本帖最后由 jnyyz 于 2023-4-10 17:34 编辑
STC8H8K64U休眠电流不稳定,有时会是0.56uA(正常值),有时是1.7uA左右,同样的程序,同样的硬件,就是飘忽不定,这次加电好了,下次可能又成了1.7uA,差1.14uA电流始终没有找到问题点。初始化代码如下:
#define GpsPowerOn() MGRxd=1;MGTxd=1;GpsPower=0;//FLAGGpsStart=1;
#define GpsPowerOff() GpsPower =1;MGRxd=0;MGTxd=0;//FLAGGpsStart=0;
#define Uart3On() IE2 |= 0x08;
#define Uart3Off() IE2 &= ~0x08;
#define GpsBatOn() GpsBa
STC8H8K64U休眠电流不稳定,有时会是0.56uA(正常值),有时是1.7uA左右,同样的程序,同样的硬件,就是飘忽不定,这次加电好了,下次可能又成了1.7uA,差1.14uA电流始终没有找到问题点。初始化代码如下:
#define GpsPowerOn() MGRxd=1;MGTxd=1;GpsPower=0;//FLAGGpsStart=1;
#define GpsPowerOff() GpsPower =1;MGRxd=0;MGTxd=0;//FLAGGpsStart=0;
#define Uart3On() IE2 |= 0x08;
#define Uart3Off() IE2 &= ~0x08;
#define GpsBatOn() GpsBa
8G2K32S4-LQFP32和8G2K64S4-LQFP32,复位时间差别太大?
2023-4-7 18:21 来自 tzgok 发布@ 综合讨论
8G2K32S4-LQFP32和8G2K64S4-LQFP32,同样的配置文件和代码文件,为何32k上电复位时间15ms,而64k上电复位时间长达30ms,,他们只是flash和io不同,为何会这样?
浮点数如何取小数点后两位
2023-4-7 18:10 来自 980578873 发布@ 综合讨论
float a;
a=1.0/3.0;
//我只想要0.33的结果,仅获取小数点后两位,请教如何获取小数点后两位的数据,小数点后两位往后的数据不要,谢谢
a=1.0/3.0;
//我只想要0.33的结果,仅获取小数点后两位,请教如何获取小数点后两位的数据,小数点后两位往后的数据不要,谢谢
请教:STC32G12K128 操作 EMP240T100C5N 问题?
2023-4-7 14:08 来自 qlw_cq 发布@ 综合讨论
STC32G12K128 操作 EMP240T100C5N 问题?
//==硬件定义==
sbit AD_BUSY =P3^3; //INT1中断输入 AD转换忙信号 0=转换结束 1=转换中
sbit E240_CS =P7^5; //CS片选
sbit E240_RS =P4^5; //RS数据/指令
sbit E240_RD =P4^4; //RD读
sbit E240_WR =P4^2; //WR写
//#define E240_BUS_H P2 //数据端口P0--0x80,P1=0x90,P2=
//==硬件定义==
sbit AD_BUSY =P3^3; //INT1中断输入 AD转换忙信号 0=转换结束 1=转换中
sbit E240_CS =P7^5; //CS片选
sbit E240_RS =P4^5; //RS数据/指令
sbit E240_RD =P4^4; //RD读
sbit E240_WR =P4^2; //WR写
//#define E240_BUS_H P2 //数据端口P0--0x80,P1=0x90,P2=
尝试做一块电路板,烧掉了。
2023-4-7 00:09 来自 jbl3010 发布@ 综合讨论
STC32G12K123-LQFP64
VCC -> USB 5V
GND -> USB GND
D+接 -> 22R -> USB白线
D-接 -> 22R -> USB蓝线
P10 <- LED <- 5.1K <- 5V
P32按说明接接了个开关
7315
插上USB后LED闪烁,GND脚冒烟。
怀疑试引脚连锡,然后我又做了一块,通电后LED闪烁,然后马上断电,VCC换了3.3v电源并加了保险丝,USB的GND和5V不接,打开3.3v电源后灯不闪了,但是按P32上电后也没反应,想起来试GND没接,没有信号,就把GND连上,然后LED开始又规律试闪烁(一长一短),是不是又烧掉了?
7316
现在官网下载的数据手册pdf文件,都不给复制内容了吗?
2023-4-4 19:10 来自 网老四 发布@ 综合讨论
多年前下载的STC芯片数据手册pdf文档,是可以复制其中的文本的,拷贝部分文档和代码非常方便.
但现在下载的手册pdf文档貌似设置了权限,不给拷贝内容了,不知道STC这么干是出于什么原因?
如果没有特别需求,建议还是放开这个权限吧.
但现在下载的手册pdf文档貌似设置了权限,不给拷贝内容了,不知道STC这么干是出于什么原因?
如果没有特别需求,建议还是放开这个权限吧.
用STC8G1K08做了个单键开关
2023-4-3 16:31 来自 xinzui 发布@ 综合讨论
本帖最后由 xinzui 于 2023-4-3 16:37 编辑
#include "Stc8g.h"
#include "intrins.h"
#include "String.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define FOSC 24000000UL
#define BRT1 (65536 - FOSC / 4 / 19200)
#define BRT2 (65536 - FOSC / 4 / 115200)
sbit IN = P5^4;
sbit OUT = P3^3;
bit IN_Check = 0;
uchar xdata Uart_RST = 0;
uint xdata Time_Base = 0;
uint xdata Time_SS = 0;
void SetIO()
{
/*---------------I/O 配置----------
#include "Stc8g.h"
#include "intrins.h"
#include "String.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define FOSC 24000000UL
#define BRT1 (65536 - FOSC / 4 / 19200)
#define BRT2 (65536 - FOSC / 4 / 115200)
sbit IN = P5^4;
sbit OUT = P3^3;
bit IN_Check = 0;
uchar xdata Uart_RST = 0;
uint xdata Time_Base = 0;
uint xdata Time_SS = 0;
void SetIO()
{
/*---------------I/O 配置----------
STC8H单片机进入掉电模式后功耗
2023-4-1 15:56 来自 980578873 发布@ 综合讨论
调试好几天了,单片机进入掉电模式后功耗高达75uA,单片机供电接单节锂电电池供电,原理图如下同步也挂在附件处。简单的测试代码如下,求助各位大佬帮忙看下是哪里有问题,谢谢。
#include<stc8h.h>
#include<intrins.h>
void gpio_init()
{
P1M0=0x00;
P1M1=0x00;
P3M0=0x00;
P3M1=0x00;
P5M0=0x00;
P5M1=0x00;
}
void gpio_pd()
{
P1M0 = 0x00;
P1M1 = 0x0d;
P3M0 = 0x00;
P3M1 = 0x40;
P5M0 = 0x00;
P5M1 = 0x00;
}
void main()
{
gpio_init();
while(1)
求助,如何使用发布项目功能限制程序烧录次数
2023-4-1 14:17 来自 sylar.z 发布@ 综合讨论
实测
1.Link1D和U8W,直接使用STC-ISP下载程序,脱机功能正常,限制烧录次数正常。
2.使用发布项目,使能脱机烧录后。
6875
配合Link1D使用脱机烧录,Link1D直接挂了,需要重新设置主控芯片才能恢复正常。
配合U8W使用脱机烧录,可能正常下载并用于烧录程序,但次数限制功能无效。
1.Link1D和U8W,直接使用STC-ISP下载程序,脱机功能正常,限制烧录次数正常。
2.使用发布项目,使能脱机烧录后。
6875
配合Link1D使用脱机烧录,Link1D直接挂了,需要重新设置主控芯片才能恢复正常。
配合U8W使用脱机烧录,可能正常下载并用于烧录程序,但次数限制功能无效。
新手的第一步,快速点亮led灯。
2023-3-31 20:59 来自 jbl3010 发布@ 综合讨论
第一步,按照手册新建工程
第二步,代码
#include "STC32G.H" //导入预定义头,不同的芯片用不同的头
void main() //主程序
{
P2M0 = 0x00;P2M1 = 0x00; //准双向口
while(1)
{
P20 = 1; //灭 根据需要选择端口
P21 = 0; //亮
P22 = 1; //灭
P23 = 0; //亮
P24 = 1; //灭
P25 = 0; //亮
}
}第三步、按F7编译,在Objects目录下得到*.hex文件就是程序.
第四步、按照手册指导下载程序到芯片
如果没有hex文件,检查下图中的Creat HEX File有没有勾选,格式要HEX-386,【在手册中有说明,但是看的跳的话容易漏掉】
6826[/atta
第二步,代码
#include "STC32G.H" //导入预定义头,不同的芯片用不同的头
void main() //主程序
{
P2M0 = 0x00;P2M1 = 0x00; //准双向口
while(1)
{
P20 = 1; //灭 根据需要选择端口
P21 = 0; //亮
P22 = 1; //灭
P23 = 0; //亮
P24 = 1; //灭
P25 = 0; //亮
}
}第三步、按F7编译,在Objects目录下得到*.hex文件就是程序.
第四步、按照手册指导下载程序到芯片
如果没有hex文件,检查下图中的Creat HEX File有没有勾选,格式要HEX-386,【在手册中有说明,但是看的跳的话容易漏掉】
6826[/atta
这个错误什么意思
2023-3-31 16:48 来自 nanang 发布@ 综合讨论
..\Libraries\spi.h(42): error C141: syntax error near 'uint8', expected 'bit'
..\Libraries\spi.h(42): error C129: missing ';' before 'SPI_Module'
..\Libraries\spi.h(42): error C129: missing ';' before 'SPI_Module'
新手求助 SPI OLED最简单的点亮全屏,验证通讯
2023-3-30 15:33 来自 qiulizhen 发布@ 综合讨论
#include<STC15F2K60S2.H>
typedef unsigned char u8;
// 下面的应该不需要定义
// sbit OLED_MISO = P1^4; //单主机模式下,没有数据交互用不到
// sbit OLED_SCLK=P1^5; //时钟
// sbit OLED_MOSI = P1^3; //主机模式下,数据发送
sbit OLED_RES=P1^0; //复位
sbit OLED_SS = P1^2; //片选
sbit OLED_DC=P1^1; //数据|命令选择
void spi_init()
{
SPDAT = 0;
SPSTAT |= 0XC0; //清SPI中断标志位和写保护 写1清除
SPCTL |= 0XDC; //SPEN=1 SPI使能打开 SSIG=1 忽略SPI_SS引脚P1^2 MSTR=1 固定的单主机模式
P_SW1 |= 0X0C; //SPI选择第一组
}
void spi_write_byte(u8 byte, bit fla