微电脑吧
关注: 108 贴子: 1,200

  • 目录:
  • 音乐话题
  • 1
    第一次使用掉电存储空间前(新屏幕),必须对掉电存储空间进行初始化 如何对掉电存储空间进行初始化 。 未初始化的掉电存储空间里面有什么数据是不确定的,可能会导致程序运行出错,例如会导致模拟器中的效果与串口屏实物的效果不一致。 存储空间的读写范围是0-1023,当读写的是val属性时,最后一个读写的位置是1020,因为当读写1020时,其读写范围是1020-1023。 掉电存储空间写入寿命有限,请勿频繁擦写,只建议存储低频次修改的数据,例如用户名
  • 8
    分割字符串的方法 1、split:将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 2、indexOf() :返回某个指定的字符串值在字符串中首次出现的位置(从左向右)。没有匹配的则返回-1,否则返回首次出现位置的字符串的下标值。 3、substr(start,length):表示从start位置开始,截取length长度的字符串。 4、substring(start,end):表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符。 5、lastIndexOf()方法返回从右向左出现某个字符
  • 0
    电脑 RS232 仿真目标CPU ┌──┐Pin2 ┌──┐ P3.1┏━━┓ │ RXD├───┤ ├───┨TXD ┃ │ │Pin3 │ │ P3.0┃ ┃ │ TXD├───┤ ├───┨RXD ┃ │ │Pin5 └──┘ ┃ ┃ │ GND├──────────┨GND ┃ └──┘ ┗━━┛ 单CPU方案仿真器使用方法: 1、首先必须安装仿真驱动,可通过点击此页面中的"添加MCU型号到Keil中"按钮进行安装 2、准备1片上面按钮所指型号的芯片 3、将其设置为仿真目标芯片 4、按照上图将芯片与电脑进行连接 5
  • 0
    SEGMENT TOO LARGE
  • 1
    将32字节汉字缓冲区数据写入外部函数指定的扇区 /************拷贝从第二个汉字开始N个字到第八扇区***********/ void CopyTwoFontEeprom(uint iapeeprom_add) { uchar fonti,fontj,fontdata; // for(fonti=0;fonti<total;) //15个字 { for(fontj=0;fontj<32;) //一个字32字节 { fontdata=IapReadByte(iapeeprom_add+fonti*32+fontj);//从目标扇区读出代码 IapProgramByte(IAP_ADDE+fonti*32+fontj,fontdata); //将代码写入第八缓冲区 fontj++; //32位文字偏移量加1. } fonti++; //15个文字偏移量加1. dis_ValCopy(fonti); //显示拷贝数 Delay_50ms(
  • 0
    65-DMA-LCM液晶屏接口测试 LCM_Test_6800_DMA_8bit_ST7920 /************* 功能说明 ************** 本例程基于STC32G为主控芯片的实验箱进行编写测试。 使用Keil C251编译器,Memory Model推荐设置XSmall模式,默认定义变量在edata,单时钟存取访问速度快。 edata建议保留1K给堆栈使用,空间不够时可将大数组、不常用变量加xdata关键字定义到xdata空间。 LCM接口驱动液晶屏程序 8bit M6800模式, P6口接D0~D7 sbit LCD_RS = P4^5; //数据/命令切换 sbit LCD_RW = P4^4; //读写控制 sbit LCD_E = P4^2; //使能 sb
  • 2
    我们在看书的时候,经常可以看到关于 左值(L-value) 和 右值(R-value) 的概念,那么到底什么是左值,什么是右值,它们之间的区别又是在哪里呢? 通俗的讲,左值就是能够出现在赋值符号左面的东西,而右值就是那些可以出现在赋值符号右面的东西了。 举个很简单的例子: a=b+100; 那么这里a就是左值,b+25就是一个右值。左值和右值之间是不一定都能互换的,上面的这个例子就是不能互换的,如果写成 b+100=a; #include<stdio.h> void main() { int a=1; int b; b
  • 1
    /***********************0--A字符表*************************/ uchar code show1[]= { 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,/*"0",0*/ 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*"1",1*/ 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,/*"2",2*/ 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,/*"3",3*/ 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,/*"4",4*/ 0x00,0xF8,0x08
  • 0
    red_eeproms(); //读EEPROM Counter++; //计数器加一 write_eeproms(Counter);//写EEPROM dis_Values(Counter); //显示开机次数 if(Counter>=1500) //超过设定值循环 { do { key_reset(); for(;kcounter<5;) //按键循环5次 { if(!INTPUT7) //按键低电平 { Key_ValAdd(); //按键低电平 计数器加一状态标志加一 } else if(~!INTPUT7) //按键高电平 { Key_Clear(); //按键计数器加一 状态标志归零 } } if(kstatus>=3) /*按键状态标志大于等于3为有效值*/ { Counter=0; //计数值清除 write_eeproms(Counter); dis_Values(Counter); } } while(Counter)
  • 1
  • 3
  • 0
    C语言求字符串长度的四种方法 方法一:调用内置函数strlen求字符串长度 方法二:创建临时变量计算字符串长度 方法三:不创建临时变量计算字符串长度(递归) 方法四:指针减指针求字符串长度 我们知道C语言是自带内置函数strlen求字符串长度的,但其实我们也可以自己编写函数来求字符串长度 方法一:调用内置函数strlen求字符串长度 #include <stdio.h> #include <string.h> int main() { char s[] = "abc"; int len = strlen(s); printf("%d ",len); return 0
  • 4
    C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的 完成一定相关功能的执行代码段。我们可以把函数看成一个"黑盒子", 你只要将数 据送进去就能得到结果, 而函数内部究竟是如何工作的的, 外部程序是不知道的。 外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序 的手段, 使之容易读、写、理解、排除错误、修改和维护。 C程序中函数的数目实际上是不限的, 如果说有什么限制的话, 那就
  • 0
    ^
    星期天de... 2023-10
    ^ “^”是一个用来表示第三级运算的数学符号。 次方,“^”是一个用来表示第三级运算的数学符号。 在电脑上输入数学公式时,因为不便于输入乘方,该符号经常被用来表示次方。而在某些计算器的按键上用这符号来表示次方。 "^"是一种位逻辑运算符,^按位或(Xor)是一种可逆运算符,只有在两个比较的位不同时其结果是1,否则结果为0。 ^,中文尚无通用名称,可以是乘方、插入符号、插入符、脱字符号等;英文称为caret (英语发音:/ˈkær
  • 24
    bt0.val=0bt1.val=0bt2.val=1
  • 0
    /*------------初始化串口---------------------*/ void InitUart(void ) { SCON=0X50; //8位数据,可变波特率 AUXR|=0x01; //串口1选择定时器2为波特率发生器 AUXR|=0X04; //定时器2时钟为Fosc,即1T T2L=0XE0; //设置定时器处置 110592》9600 T2H=0XFE; //设置定时器处置 110592》9600 AUXR|=0X10; //启动定时器2 TI=1; ES=1; // EA=1; } /***定时器0中断电机手动控制*********************************/ void timer0() interrupt 1 { if(MotoraRun_Flag==1) //电机A为1启动X电机 { vala++; if(vala>=20) { vala=0; CP0=~CP0; // } } if(MotorbRun_Flag==1) //
  • 7
    /***定时器0中断运行函数 判断电机运行为一启动输出***/ //ManuMTARUN_FLAG手动定时器电机A运行标志 //ManuMTBRUN_FLAG手动定时器电机B运行标志 void timer0() interrupt 1 { if(ManuMTARUN_FLAG==1) //电机A为1启动X电机 { aa++; if(aa>=50) //aa大于等于a1 { aa=0; //aa复位 CP1=!CP1; //输出脉冲 if(X_AddDecFlag==1) //手动左移右移加减标志等于1 右移 X_Data+=1; //加1 else X_Data-=1; //减1 } } if(ManuMTBRUN_FLAG==1) //电机B为1启动Y电机 { bb++; if(bb>=50) { bb=0; //bb复位 CP2=!CP2; //端口取反 if(Y_AddDecFlag==1) //手动前
  • 0
    #include "reg52.h" typedef unsigned char BYTE; typedef unsigned int WORD; #define FOSC 11059200L #define T1MS (65536-FOSC/1000) //1T模式 #define uint unsigned int #define uchar unsigned char uint vala,valb,aa; /**/ void tm0_isr() interrupt 1 { valb++; if(valb>100) { valb=0; P36=!P36; //将测试口取反 } } /************************/ void t2int() interrupt 12 //中断入口 { vala++; if(vala>100) { vala=0; P37=!P37; //将测试口取反 } } /************************/ void main() { P1M0 = 0x00; P1M1 = 0x00; P2M0 = 0x00; P2M1 = 0x00; P3M0 = 0x00; P3M1 = 0x00; P5M0 = 0x00; P5M1
  • 0
    在STM32中,位带操作是一种非常有用的技术,它可以让你直接访问一个单一的位,而不必去读取或者写入整个寄存器。这种技术可以用于提高代码的执行效率和减少代码的大小。 在STM32中,位带操作可以通过特殊的寄存器和内存映射来实现。具体来说,STM32的每个位都有一个对应的位带别名寄存器。例如,如果你想访问寄存器RCC->CR的第3个位,你可以使用位带别名寄存器来直接读取或者写入该位,而不必读取或者写入整个寄存器。 以下是一个示例代
  • 0
    Arduino IDE(Integrated Development Environment,即集成开发环境)是Arduino官方提供的一款开发工具,用于编写、上传和调试Arduino程序。Arduino IDE提供了一个简单易用的图形化界面,方便用户进行程序编写和上传。用户只需要编写Arduino程序,然后通过USB连接将Arduino板与计算机连接,再通过Arduino IDE将程序上传到Arduino板上即可运行。 Arduino IDE基于开源软件Processing和Wiring进行开发,支持多种操作系统,如Windows、MacOS和Linux等。它提供了丰富的库函数和示例代码,方
  • 19
    const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。 #include <AT89X51.H> //预处理文件里面定义了特殊寄存器的名称如P1口定义为P1 void main(void) { //定义花样数据 const unsigne
  • 0
    一、类型转换 unsigned int v_16; unsigned CHAR v_8h, v_8l; v_8h = (unsigned CHAR)*((unsigned CHAR *)(&v_16) + 1); v_8l = (unsigned CHAR)*(unsigned CHAR *)(&v_16); 二、联合体 union { unsigned int v_16; struct { unsigned CHAR v_8l; unsigned CHAR v_8h; } } 三、一般转换 v_8h = v_16 >> 8; v_8l = v_16 & 0x00FF;
  • 1
    https://blog.csdn.net/lishoubox/article/details/6276698 //-------------------------------------------- // 串行通讯代码//start // //--------------------------------------- RS232串行通信相关函数 /// // uchar out_data[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; //待发送的数据 // uchar in_data[16]; //接收数据缓冲区 /****************************************/ /* */ /* 等待发送完毕 */ /* */ /***************************************/ void send_wait() { while(!TI); TI = 0; } /******************************************/ /* */ /* 等待接收完毕 */ /* */ /* */ /******
  • 0
    FreeRTOS实验2-1 FreeRTOS移植实验 FreeRTOS实验4-1 FreeRTOS中断测试实验 FreeRTOS实验6-1 FreeRTOS任务创建和删除实验(动态方法) FreeRTOS实验6-2 FreeRTOS任务创建和删除实验(静态方法) FreeRTOS实验6-3 FreeRTOS任务挂起和恢复实验 FreeRTOS实验7-1 FreeRTOS列表项的插入和删除实验 FreeRTOS实验9-1 FreeRTOS时间片调度实验 FreeRTOS实验11-1 FreeRTOS任务壮态或信息查询实验 FreeRTOS实验11-2 FreeRTOS任务运行时间统计实验 FreeRTOS实验13-1 FreeRTOS队列操作实验 FreeRTOS实验14-1 FreeRTOS二值信号量实验 Free
  • 0
    STM32库文件IO配置 typedef enum { GPIO_Mode_AIN = 0x0, // 模拟输入 ; 0000 0000 GPIO_Mode_IN_FLOATING = 0x04, // 浮空输入 ; 0000 0100 GPIO_Mode_IPD = 0x28, // 下拉输入 ; 0010 1000 GPIO_Mode_IPU = 0x48, // 上拉输入 ; 0100 0100 GPIO_Mode_Out_OD = 0x14, // 开漏输出 ; 0001 0100 GPIO_Mode_Out_PP = 0x10, // 推挽输出 ; 0010 0000 GPIO_Mode_AF_OD = 0x1C, // 复用开漏输出 ;0001 1100 GPIO_Mode_AF_PP = 0x18 // 复用推挽输出 ;0001 1000 }GPIOMode_TypeDef; typedef struct { u16 GPIO_Pin; // 管脚IO口寄存器 ; GPIOSpeed_TypeDef GPIO_Speed; // 管脚频
  • 0
    ISP与IAP介绍 ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了ISP技术。IAP:In Application Programable 是指在应用编程,就是片子提供一系列的机制(硬件/软件上的)当片子在运行程序的时候可以提供一种改变flash数据的方法。通俗点讲,也就是说程序自己可以往程序存储器里写数据或修改程序。这种方式
    微电脑吧 11-29
  • 0
  • 1
    STC自带范例程序 #include "reg51.h" #include "intrins.h" //测试工作频率为11.0592MHz sfr IAP_DATA = 0xC2; sfr IAP_ADDRH = 0xC3; sfr IAP_ADDRL = 0xC4; sfr IAP_CMD = 0xC5; sfr IAP_TRIG = 0xC6; sfr IAP_CONTR = 0xC7; #define WT_30M 0x80 #define WT_24M 0x81 #define WT_20M 0x82 #define WT_12M 0x83 #define WT_6M 0x84 #define WT_3M 0x85 #define WT_2M 0x86 #define WT_1M 0x87 void IapIdle() { IAP_CONTR = 0; //关闭IAP功能 IAP_CMD = 0; //清除命令寄存器 IAP_TRIG = 0; //清除触发寄存器 IAP_ADDRH = 0x80; //将地址设置到非IAP区域 IAP_ADDRL = 0; } char Ia
  • 1
    定义四个按键 一个启动,一个停止,一个延时speed加 一个延时speed减 启动turn=1;停止turn=0;循环检测turn值,1开启,0停止。 MAIN函数 ************************************************************* ************************************************************* ************************************************************* 定义输入输出引脚 /************************************************************ **实验名称:GPIO **功能:和基础篇的GPIO例程实现的功能一样,但这里所有的IO口操作都使用了直接操作寄存器的办法. **注
  • 7
    红白,24V+ 红 安全门 ,黑 24VGND 黑白 吹气 蓝 030锁模 蓝白 030串联 吹气延时 5秒 吹气时间 15秒 进入教导 按住吹气 机械手开模完信号得电 。 读出模好 编辑程序,按相应动作,输入键两次,储存指令。 机械手按自动 运行
  • 0
  • 6
  • 1
    #ifndef __KEY_H #define __KEY_H #include "sys.h" ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// //#define KEY0 PCin(5) //#define KEY1 PAin(15) //#define WK_UP PAin(0) #define KEY0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)//读取按键0 PA1************************ #define KEY1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)//读取按键1 PA5 #define KEY2 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)//读取按键0 PA6************************ #define WK_UP GPIO_ReadInputDataBit(GPI
  • 3
    #include "ds18b20.h" #include "key.h" #include "1602.h" #define uint unsigned int #define uchar unsigned char uchar H1,H0,M1,M0,S1,S0,Z; uchar key; uint temp = 0; void job0 (void) _task_ 0 { EA = 0; lcd_init(); displayAdvertising();//中文显示 EA=1; //任务0 创建任务1,2,3 os_create_task (1);//任务1 时间加 os_create_task (2);//任务2 18B20 os_create_task (3);//任务3 KEY按键检测 while (1) { play_SMG(key); } } void clock (void) _task_ 1 { char i; while (1) { for(i = 0; i < 10; i++) { os_wait2(K_TMO,100); if(Z == 9) { Z = 0; } else { Z = Z + 1;
    微电脑吧 10-15
  • 1
    #include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "timer.h" #include "lcd.h" #include "key.h" #include "exti.h" #include "FreeRTOS.h" #include "task.h" /************************************************ ALIENTEK Mini STM32F103开发板 FreeRTOS实验 按KEY_UP挂起恢复任务1 按KEY_1挂起任务2 按KEY_0恢复任务2 作者:正点原子 @ALIENTEK KEY0 修改PC5为PA13 2020 2 14测试通过 ************************************************/ //任务优先级 #d

  • 发贴红色标题
  • 显示红名
  • 签到六倍经验

赠送补签卡1张,获得[经验书购买权]

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!

本吧信息 查看详情>>

会员: 会员

目录: 音乐话题