新手的第一步,快速点亮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
请一份简易汇编例程
2023-3-30 12:25 来自 QQ624353765 发布@ 综合讨论
6737
自己写了个无参数汇编函数,我现在想要一个带参汇编函数,不会写,请大神给个模板
需要带三个参数,类型分别是unsigned int,unsigned int,unsigned char
自己写了个无参数汇编函数,我现在想要一个带参汇编函数,不会写,请大神给个模板
需要带三个参数,类型分别是unsigned int,unsigned int,unsigned char
新手用屠龙刀的问题
2023-3-30 10:50 来自 jbl3010 发布@ 综合讨论
屠龙刀上电后跑马灯运行正常。
然后我按照文档刷了个空程序,跑马没了,然后编译例程里的跑马灯,运行也正常。
然后将例程里的VirtualDevice改成1,刷进去后跑马灯没了,usbhid仿真里也看不到变化。
再将VirtualDevice改为0,刷进去后跑马灯还是没有。
问题出在哪里?
然后我按照文档刷了个空程序,跑马没了,然后编译例程里的跑马灯,运行也正常。
然后将例程里的VirtualDevice改成1,刷进去后跑马灯没了,usbhid仿真里也看不到变化。
再将VirtualDevice改为0,刷进去后跑马灯还是没有。
问题出在哪里?
STC8A8K64D4 P0口输出高电平问题
2023-3-27 21:26 来自 jasondj118 发布@ 综合讨论
STC8A8K64D4 P0外部上拉5V10k排阻,口线I/O模式我设置了准双向以及开漏输出模式进行测试,输出高电平P0.0-0.6只能达到3.3V,奇怪的是P0.7能到5V,各位大佬能告诉我是设置哪里不对吗?谢谢
强烈建议官方出双数据指针库函数
2023-3-27 09:21 来自 QQ624353765 发布@ 综合讨论
手册上宣传强大的双数据指针,强大到没人使用
自从学习51单片机以来,几年的时间都没有用过双数据指针
双数据指针还是有优势的,应该把这项功能变得大众化,傻瓜化,人人都会用的实用功能
自从学习51单片机以来,几年的时间都没有用过双数据指针
双数据指针还是有优势的,应该把这项功能变得大众化,傻瓜化,人人都会用的实用功能
注意升级后的STC8H.H头文件。
2023-3-24 21:52 来自 lgwd 发布@ 综合讨论
笔者一直使用STC芯片。STC芯片也在不断出新。近年已经使用STC8A的A12到D4版本,每次换用新的芯片,笔者都注意仔细阅读技术手册,并记录下需要使用的新增功能。
最近考虑产品改用STC8H8K64U芯片,目的直接用USB口与PC机连接,抛弃USB转串口芯片。
有关CDC串口程序已经打包完成,加入到以前的项目。发现仅仅将之前的STC8.H头文件替换为STC8H.H头文件,原程序没有任何改动,再编译项目。这时出现不少错误和警告。而且根据错误提示,很难确定错误的原因。
问题应该是由STC8H.H头文件引起。按理说后来的头文件应该是扩充了以前的头文件,虽然并没有使用扩展的寄存器等。最后仔细比较以前和现在的头文件,发现:程序中用到的寄存器“BUS_SPEED”在后来的头文件中没有定义。与ADC有关的符号值“ADC_START”和“ADC_FLAG”等均没有再定义,而之前程序中使用了。
再将“BUS_SPEED”加入STC8H.H头文件重新定义后,并添加与ADC相关的符号值,项目编译通过,无警告、无错误。
所以在改用新的芯片时,要注意头文件可能带来问题。对于几千行的程序,有时一个符号
最近考虑产品改用STC8H8K64U芯片,目的直接用USB口与PC机连接,抛弃USB转串口芯片。
有关CDC串口程序已经打包完成,加入到以前的项目。发现仅仅将之前的STC8.H头文件替换为STC8H.H头文件,原程序没有任何改动,再编译项目。这时出现不少错误和警告。而且根据错误提示,很难确定错误的原因。
问题应该是由STC8H.H头文件引起。按理说后来的头文件应该是扩充了以前的头文件,虽然并没有使用扩展的寄存器等。最后仔细比较以前和现在的头文件,发现:程序中用到的寄存器“BUS_SPEED”在后来的头文件中没有定义。与ADC有关的符号值“ADC_START”和“ADC_FLAG”等均没有再定义,而之前程序中使用了。
再将“BUS_SPEED”加入STC8H.H头文件重新定义后,并添加与ADC相关的符号值,项目编译通过,无警告、无错误。
所以在改用新的芯片时,要注意头文件可能带来问题。对于几千行的程序,有时一个符号
sbit和#define区别
2023-3-22 19:21 来自 980578873 发布@ 综合讨论
sbit led=P1^3;
#define led P13
以上两条语句它们效果是否一样,谢谢。
#define led P13
以上两条语句它们效果是否一样,谢谢。
有关sfr16定义寄存器读写无效
2023-3-22 17:29 来自 QQ624353765 发布@ 综合讨论
6203
我定义了一个sfr16的寄存器,是ADC转换结果寄存器定义成16位
用这16位的寄存器读取出来的值是0,为什么?难道sfr16不是这么用的吗
我定义了一个sfr16的寄存器,是ADC转换结果寄存器定义成16位
用这16位的寄存器读取出来的值是0,为什么?难道sfr16不是这么用的吗
读取BGV参考值错误
2023-3-22 16:49 来自 QQ624353765 发布@ 综合讨论
6194
6195
从idata读出来是0
从ROM中读出来是0xFFFF
EEPROM只用的512字节
单片机是stc8h8k64U
什么原因?
6195
从idata读出来是0
从ROM中读出来是0xFFFF
EEPROM只用的512字节
单片机是stc8h8k64U
什么原因?
单片机出现死机的问题
2023-3-22 16:32 来自 980578873 发布@ 综合讨论
大家好,小弟遇到一个很奇怪的问题:单片机(STC8H1K17)容易出现死机的现象,此时绿灯和橙灯都没有按照程序的意思去闪烁,而且保持常亮(程序初始化已关灯),串口也不打印任何信息。解决此问题的办法是:屏蔽I2C总线的读写两个函数,缺一不可,或者单片机断电重启也可以解决问题,目前原因未知,请教大家帮忙分析指点,谢谢。
6191
6191
求一份单片机锂电池充放电方案
2023-3-22 10:03 来自 QQ624353765 发布@ 综合讨论
项目中用到3.7v的锂电池,能推荐合适廉价,稳定的锂电池充放电管理系统。最好能有个低电压信号给单片机。