芯片版本号问题
2023-3-20 14:09 来自 WHX 发布@ 综合讨论
请问,我们公司也买了10几片芯片做测试,现在STC都已经出正式版的芯片了,但是我看到我们公司买的芯片上面最后一个的字母竟然是A,不知道这个是是正式版还是测试版?请知道的大侠明示一下,感谢啦:)
单片机不能复位
2023-3-20 11:54 来自 980578873 发布@ 综合讨论
各位大佬:插入USB 5V时测试三极管Q3的集电极(Q3的第3脚)有低电平信号,单片机并没有复位,如果把R3改为0欧姆,插入USB 5V时单片机就可以复位,这是为什么?谢谢。
593559365937
593559365937
在21IC解决不了,发到这里求达人解决:STC8H工作电流大
2023-3-20 11:07 来自 tzgok 发布@ 综合讨论
1,所有io均按手册设置为准双向,输出ff,关闭所有上拉,没有打开任何外设,程序while (1);死循环,,实测工作电流为6ma,比手册的高1倍。。不知道什么原因,请路过的指教下。
2,同样测试条件和转换板,测试STC8G系列,电流就和手册一致,为3.3MA
2,同样测试条件和转换板,测试STC8G系列,电流就和手册一致,为3.3MA
关于STC8/STC32的开漏输出
2023-3-19 22:06 来自 chansainlong 发布@ 综合讨论
各位大神好,小弟我最近想省去ULN2803。不知道行不行
5918
P2.4会设置成开漏输出
5918
P2.4会设置成开漏输出
上电问题 电源指示灯异常 无法检测单片机
2023-3-18 23:58 来自 2427385240 发布@ 综合讨论
这块板子是用来做tft演示实验的,没有接任何外部电源,检查接线后出现异常,电源指示灯不亮,每一插上usb加强线后第一个电源指示灯先亮起,一段时间后熄灭,旁边的是正常状态下指示灯状况,如下图
5903
5903
stc8g1k17使用xdata定义变了出现异常
2023-3-18 21:34 来自 changjiangu9 发布@ 综合讨论
看手册stc8g1k17有1k的片内xdata区,想将几个大的数组定义到XDATA区,如下:
uchar xdata x1,x2,x3;
用keil 4可正常编译,但程序运行后对数组读写出错,数据随机出现不可预知的值,赋值1后读出的有可能是9,不知什么原因(不使用XDATA的数据时程序正常)。
uchar xdata x1,x2,x3;
用keil 4可正常编译,但程序运行后对数组读写出错,数据随机出现不可预知的值,赋值1后读出的有可能是9,不知什么原因(不使用XDATA的数据时程序正常)。
【求助】烧录以下程序到开发板后,数码管和led灯跳动
2023-3-18 19:26 来自 mxdyeah 发布@ 综合讨论
烧录以下程序到开发板后,数码管和led灯跳动
能不能不让数码管和led灯跳动?
代码来自:深圳市普中科技有限公司(PRECHIN 普中) 稍有改动
main.c文件
/******************************************
能不能不让数码管和led灯跳动?
代码来自:深圳市普中科技有限公司(PRECHIN 普中) 稍有改动
main.c文件
/******************************************
请问: 这是怎么回事???
2023-3-18 05:59 来自 LAOXU 发布@ 综合讨论
很简单的测试程序, 没有任何中断, 仅测试指令执行时间.
5832
上例中: _nop_(); 一个都不加, 测试结果 time1 = 1
加一个 _nop_(); 测试结果 time1 = 9 (异常!!!)
加二个 _nop_(); 测试结果 time1 = 10
加三个 _nop_(); 测试结果 time1 = 11
加四个 _nop_(); 测试结果 time1 = 12
芯片型号是 STC32G
5832
上例中: _nop_(); 一个都不加, 测试结果 time1 = 1
加一个 _nop_(); 测试结果 time1 = 9 (异常!!!)
加二个 _nop_(); 测试结果 time1 = 10
加三个 _nop_(); 测试结果 time1 = 11
加四个 _nop_(); 测试结果 time1 = 12
芯片型号是 STC32G
关于DMA使用详细解说
2023-3-17 17:50 来自 15818564352 发布@ 综合讨论
最近使用DMA_SPI读写W25Q128,参考例程,始终不成功,不用DMA功能SPI读写W25Q128就可以。
不知有没有关于DMA功能寄存器详细原理解说一下呢,我对DMA中断原理不太清楚,是不是一定要写满缓存或读完缓存才会有中断吗?
不知有没有关于DMA功能寄存器详细原理解说一下呢,我对DMA中断原理不太清楚,是不是一定要写满缓存或读完缓存才会有中断吗?
对于51内核,MCS251内核增强了什么?
2023-3-16 15:58 来自 wy_nb 发布@ 综合讨论
本帖最后由 wy_nb 于 2023-3-16 17:01 编辑
新人求教,有没有系统介绍MCS251内核的啊,内核没搞清楚不敢用STC32G啊!
官方freeRTOS的移植文件portasm.h看得有点晕,比如:
#define portRELEASE_INTERRUPT() \
{ \
__asm { CLR EA } \
__asm { PUSH PSW1 } \
__asm { PUSH #BYTE2 ($+10) } \
__asm { PUSH #BYTE0 ($+7) } \
__asm { PUSH #BYTE1 ($+4) } \ 这里三条指令完成了什么功能?
__asm { RETI
新人求教,有没有系统介绍MCS251内核的啊,内核没搞清楚不敢用STC32G啊!
官方freeRTOS的移植文件portasm.h看得有点晕,比如:
#define portRELEASE_INTERRUPT() \
{ \
__asm { CLR EA } \
__asm { PUSH PSW1 } \
__asm { PUSH #BYTE2 ($+10) } \
__asm { PUSH #BYTE0 ($+7) } \
__asm { PUSH #BYTE1 ($+4) } \ 这里三条指令完成了什么功能?
__asm { RETI
printf打印输出得不到正确的读数
2023-3-15 13:53 来自 980578873 发布@ 综合讨论
#define uchar unsigned char
uchar key_flag=0;
void int3() interrupt 11//按键按下,下降沿触发中断
{
key_flag=1;
}
打印程序:
TI=1;
printf("key_flag is %d \n",key_flag);
while(TI==0);
TI=0;
为什么key_flag的打印结果不是1
5580
uchar key_flag=0;
void int3() interrupt 11//按键按下,下降沿触发中断
{
key_flag=1;
}
打印程序:
TI=1;
printf("key_flag is %d \n",key_flag);
while(TI==0);
TI=0;
为什么key_flag的打印结果不是1
5580
请问这块芯片是A版还是B/C/D版?
2023-3-15 09:52 来自 lgwd 发布@ 综合讨论
打狗棒ISP写程序完成显示如下信息:
内部安排测试时间: 2022年5月5日
芯片出厂序列号 : F784C913009807
单片机型号: STC8H8K64U
固件版本号: 7.4.4U
请问这个芯片属于A版还是B/C/D版?
内部安排测试时间: 2022年5月5日
芯片出厂序列号 : F784C913009807
单片机型号: STC8H8K64U
固件版本号: 7.4.4U
请问这个芯片属于A版还是B/C/D版?
结构体中不允许定义bit 指针吗
2023-3-14 08:28 来自 t176 发布@ 综合讨论
写一个链表准备管理散乱的引脚, 结构体中 bit *pin; 咋不支持啊,应该如何改正
STC官方的文档,也没找到关于对散乱的IO口进行统一管理的方法
如果用sfr 定义 ,也无法对其他引脚做映射啊.相对的指针也没办法引出. 愁死了
下面是DEMO 测试编译的,直接不通过
#include <STC32G.H>
//定义链表节点的结构体:
//其中,bit *pin表示指向引脚的指针,struct node *next表示指向下一个节点的指针。
typedef struct node {
bit *pin; // 指向引脚的指针
struct node *next; // 指向下一个节点的指针
} Node;
Node *head = NULL;
void addNode(bit *pin) {
Node *newNode = (Node *) malloc(sizeof(Node)); // 分配新节点内存
newNode->
STC官方的文档,也没找到关于对散乱的IO口进行统一管理的方法
如果用sfr 定义 ,也无法对其他引脚做映射啊.相对的指针也没办法引出. 愁死了
下面是DEMO 测试编译的,直接不通过
#include <STC32G.H>
//定义链表节点的结构体:
//其中,bit *pin表示指向引脚的指针,struct node *next表示指向下一个节点的指针。
typedef struct node {
bit *pin; // 指向引脚的指针
struct node *next; // 指向下一个节点的指针
} Node;
Node *head = NULL;
void addNode(bit *pin) {
Node *newNode = (Node *) malloc(sizeof(Node)); // 分配新节点内存
newNode->