- 博客(34)
- 资源 (5)
- 收藏
- 关注
原创 #结构体集合 再不会的话,我就请你吃大餐了 (自我惩罚)
结构体集合 再不会的话,我就请你吃大餐了 (自我惩罚)一步到位了,最近加班有点严重。下面看看准备写一下链表。/**** 可能会用的结构体,请深入理解 ****///先描绘一个框架struct 结构体类型名 结构体变量名 //这是标准struct Info{ unsigned long identifier;//学号,用无符号长整数表示 char name[20];//名字,用字符数组表示 unsigned int year;//入学年份,用无符号整
2021-08-19 11:58:15 123
原创 c_character_string 字符串----我认真的弄明白了,也希望你们也是。
strcpy stncpy cmp cat .......
2023-02-10 15:09:19 607
转载 STM32串口之环形队列接收数据
int main(void){ char readBuffer[100]; u16 t; u16 len; u16 times = 0; delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(115200); //串口初始化为115200 LED_Init(); // LED端口初始化 KEY_In
2021-11-30 19:43:00 1332
原创 C语言:字节排序大小端问题
比如说: 0X11 22 33 44 这是4个字节 因为一个字节八个位 11转换成二进制是0001 0001 22装换二进制是0010 0010…那么 左边是低位 右边是高位----低---------------------高-----如果说存储是这样:------11 22 33 44----高位放在低地址上这就是属于 大端------44 33 22 11----高位放在高地址上这就是属于 小端#include <stdio.h>int check_sys(){ int
2021-03-30 15:10:08 270
原创 C语言教程:实现通讯录
通讯录通讯录头文件初始化通讯录添加通讯录信息展示通讯录信息删除信息查找通讯录信息修改指定信息实现主要代码实现main.c通讯录头文件通讯录包括5个功能:增加信息,打印信息,删除信息,查找信息,修改信息,我们使用结构体来创建通讯录头文件如下:#include<stdio.h>#include<string.h>#include<stdlib.h>#define namemax 255#define sexmax 20#define telemax
2021-03-15 14:22:03 1312
原创 C语言:函数的使用
函数函数的定义函数的传参值传递:地址传递:函数的调用函数的嵌套函数与数组函数与一维数组六级标题函数的定义格式:数据类型 函数名 ([数据类型 形参名,数据类型 形参名,…])例:#include <stdio.h>#include <stdlib.h>int main(int argc,char *argv[]){ //argc:从终端计算传递多少个参数过来,比如我们执行./main 123 ABC 则argc就是4个,如果是./main 那么就是argc就是1
2021-03-10 18:27:00 1259
原创 C语言:结构体类型
直接例子:#综合结构体操作#include <stdio.h>#include <stdlib.h>#define namesize 24struct student { int id; int i; char name[namesize]; struct birthday { int year; int month; int day; }brith; int mat
2021-03-10 16:30:41 1310
原创 C语言:指针,指针与数组
首先要知道不管你的指针是什么类型,是几级指针,在同一个操作平台编译环境中,所占的内存空间都是一致的。如pc使用的是32位的,那就是 32/8=4,那就是4个字节内存空间。例:#include <stdio.h>#include <stdlib.h>int main(){ int i = 1; int *p = &i;//分开写是 int *p;p=&i; printf("i = %d\n",i);//简单取值 prin
2021-03-05 16:19:04 864 1
原创 C语言教程:在二维数组中求最大值及其所在位置
在二维数组中求最大值及其所在位置#include <stdio.h>#include <stdlib.h>#define M 2#define N 3static void findmax(void){ int}int main(){ findmax(); return 0;}
2021-03-04 16:03:21 11650 1
原创 C语言教程:行列互换(二维数组)
行列互换(二维数组)将行和列互相交换#include <stdio.h>#include <stdlib.h>#define M 2#define N 3static void change(void){ int i,j; int a[M][N] = {1,2,3,4,5,6}; //原始的数组 int b[N][M]; //存储交换后的数组 for(i=0;i<M;i++) //遍历每一行 { for(j=0;j<N;
2021-03-04 14:30:07 8960 2
原创 C语言教程:十进制转换任意进制
#include "stdio.h"#include "stdlib.h"#define N 10static void base_convert(void){ int num,base; int n[128]; int i = 0; printf("please enter the coverted num:"); scanf("%d",&num);//输入任意的十进制 printf("please enter the base:");
2021-03-02 16:03:02 11616 1
原创 C语言教程:水仙花数
求出1000以内的水仙花数首先知道水仙花数是什么:水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。 来源于百度百科。例程:#include <stdio.h>#include <stdl
2021-03-01 09:47:11 301
原创 C语言教程:九九乘法表的多样性编写
第一种:#include <stdio.h>int main() { int i,j; // i, j控制行或列 for(i=1;i<=9;i++) { for(j=1;j<=9;j++) // %2d 控制宽度为两个字符,且右对齐;如果改为 %-2d 则为左对齐 // \t为tab缩进 (可以理解为跳格) \r 回车 \n 换行 printf("%d*%d=%4d\t", i
2021-02-28 18:06:34 168
原创 C语言教程:fibonacci斐波那契求数列(不用数组和使用数组的分别实现)
斐波那契数列的前四十项(不用数组实现)#include <stdio.h>#include <stdlib.h>static void test(void){ long int f1 = 1,f2 = 1; int i; for(i = 1;i <= 20;i++) { printf("%12d %12d",f1,f2); f1 += f2; f2 += f1; }}int m
2021-02-28 17:43:02 2621 3
原创 C语言例程:计算奇数偶数平均值问题
从终端读取数据,直到输入0值才为结束,计算出其中的偶数个数及平均值和奇数的个数以及平均值。#include <stdio.h>#include <stdlib.h>static void test2(void){ int n; int ct_odd = 0,ct_even = 0;// 定义 odd奇数 even为偶数 double sum_odd = 0,sum_even = 0; while(scanf("%d",&n)
2021-02-28 17:19:39 4883
原创 C语言例程:投资问题 单利和复利
投资问题:A以每年的10%的单利息投资100美元,B以每年5%的复合利息投资了100美元。编写一个程序,计算需要多少年B的投资总额才会超过A的,并且显示出AB的资产总额。p为本金 r为单利 n为年 总和=p*(1+rn)p为本金 r为复利 n为年 总和=p((1+r)n次方)#include <stdio.h>#include <stdlib.h>#define INIT 100#define SIMP 0.10#define MULT 0.05static
2021-02-28 16:59:17 1348 7
原创 C语言例程:元音字母的统计
从终端上输入若干个字符,对其中的元音字母进行统计。#include <stdio.h>#include <stdlib.h>static void test3(void){ int ct_a = 0,ct_e = 0,ct_i = 0,ct_o = 0,ct_u = 0; int ch; ch = getchar(); while(ch != '#') { switch(ch) {
2021-02-28 16:32:22 3264
原创 C语言例程:判断三角形的类型
//==================//判断三角形的类型//==================#include <stdio.h>#include <math.h> void judge(int a, int b, int c){ float s, area; if (a + b > c && b + c > a && a + c > b) //两边之和大于第三边 { s = (a + b + c)
2021-02-28 16:06:44 1198
原创 C语言例程:百钱百鸡问题
鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?解答思想是:总共一百块钱买一百只鸡i+j+k=100;个数i5+j3+k/3*1=100;钱#include <stdio.h> static void test(void){ int i,j,k;//鸡翁 鸡母 鸡雏 for(i=0;i<100/5;i++) { for(j=0;j<100/3;j++) { for(k=0;k<100;k++) {
2021-02-28 15:49:26 12698
原创 c语言中辅助控制break和continue的用法,一步到位
辅助控制:break continue说到这个必须知道的死循环,死循环是有两个: while(1) for(;;)break 用法如:while(){ ...........A; break; ..........B;}.............C;如果使用break,则顺序是:如果满足条件使用break,先执行A语句,再执行break最后跳出本次函数,执行C语句。 contine用法如:while(){ .......
2021-02-28 14:21:55 258
原创 C语言中for循环 四种用法 保证你看了会立刻明白
for: for(表达式1;表达式2;表达式3) { loop; } 这个执行过程是:首先执行表达式1,然后判断表达式2是否成立,如果成立, 则执行loop,然后再是执行表达式3。 顺序:表达式1 > 表达式2 > loop > 表达式3 如果判断表达式2不成立,则返回,不会执行loop。因此for循环最少循环0次。使用方法1:标准形式#include <stdio.h>#include <stdlib.h>#d
2021-02-28 14:00:24 4863 1
原创 第一个关于STM32的MODBUS协议例子 功能码03
这两天一直在有关于modbus协议的传输,没有想到会这般困难,原谅我是一个新手。具体的modbus协议,网上很多了,我就不多说了,直接发出来。第一部分u8 receiveOK_flag = 0;int main(void) { delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); uart_init(115200); LED_Init();//LED初始化 while(1) {
2021-02-26 15:33:55 1424 8
原创 基于ucosii的通讯联系 主要部分
基于ucosii的通讯联系 主要部分/*1.初始化操作系统 OSInit(&err);2.建立任务,至少需要一个任务;3.建立操作系统提供的各种服务, 信号量服务 消息邮箱服务 消息队列服务等;4.运行操作系统; OSStart();说明:当按键按下通讯录增加一个名单,当按键按下另外一个名单时候删掉一个名单。名单都是已经做好在文本,当然也可以scanf通过串口获取信息,这里就没有写。如有不足帮忙指正谢谢。*///START 任务//设置任务优先级#define START_
2021-02-23 10:23:02 217
原创 一本正经的学习stm32 IIC
stm32 IIC本文是在编译软件上编写的,文章格式稍有不是,请见谅。一、IIC的简介IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。它是半双工通信方式(同一时刻只能是接或者是收)。IIC总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持
2021-01-29 17:03:45 379
原创 指针&结构体&数组
指针&结构体&数组&student1表示结构体变量student1的首地址,即student1第一个项的地址。如果定义一个指针变量P指向这个地址的话,P就可以指向结构体变量student1中的任意一个成员。写个程序看一下。#include <stdio.h>#include <string.h>struct AGE{int year;int month;int day;};struct STUDENT{char name[20];i
2020-12-25 10:37:03 504 1
原创 一本正经的学习stm32之ADC
一本正经的学习stm32之ADC应用实例(单通道、多通道、基于DMA)硬件:STM32F103VCT6开发工具:Keil uVision4下载调试工具:ARM仿真器网上资料很多,这里做一个详细的整合。(也不是很详细,但很通俗)。所用的芯片内嵌3个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,2个内部通道。3个:代表ADC1、ADC2、ADC3(下图是芯片固件库的截图)12位:也叫ADC分辨率、采样精度。先来看看二进制的12位可表示0-4095个数,也就是说转换器通过采集
2020-12-15 10:06:43 2837
原创 ucos任务间的同步与通信
**我是一个嵌入式小白,遇到问题记下来!今天学习一下ucos,不懂的太多。如果有错误麻烦告知,谢谢。ucos任务间的同步与通信ucosii任务间的同步和通信都可以通过“事件”的方式来搞定,这个事件包括:信号量、互斥量、邮箱和消息队列, 其中信号量和互斥量用于同步,邮箱和消息队列可用于通信。 任务中有任务控制块,同样,在“事件”中有事件控制块ECBtypedef struct os_event {INT8U OSEventType; 事件控制块的类型void OSEventPtr; / Point
2020-08-11 17:15:30 1343
原创 keil使用中,工程窗口的图标,红色禁止驶入问题。
我是一个嵌入式小白,遇到问题记下来!原因和现象**keil使用过程中可以看到如下工程窗口的图标,有黄色的“感叹号”、“星号”、“钥匙”、还有红色的杠“禁止驶入”的标志等等,这些都是一些小问题的,有的影响不大,有点影响很严重。我今天遇到一个“禁止驶入”让我哭了一地啊 。还好解决了,分享一下吧!上图:我想不明白它是啥,我不知道为什么会出现这样的。最后的最后,我给它征服了。我先查资料找明白它是谁?指工程不包含该源文件,也就是不进行编译,链接等处理。**解决操作**右击文件,修改文件的属性,这
2020-07-21 17:22:03 5795 2
原创 在stm32编译过程中,更换芯片型号出现很多错误!
我是一个小白,遇到问题记下来!**原因和现象**之前使用STM32F103ZE系列芯片,现在领导安排让我使用103RF系统,于是我为了使自己方便,将之前的ZE系列文件打包全部移动RF上,我只是添加一个main,结果编译报错很多,都是同样一个error,但出现很多次。上图:不难发现发现都是一个问题,糟心啊。。。于是我各种查资料,看两者芯片手册,发现使用的容量不一样,是我选择的问题。那心里一个开心啊,刺激啊,**解决操作**我找到定义和更改的地方,现在芯片对应的容量,和对应的define。
2020-06-17 17:28:29 2746 6
充电协议标准解读与典型案例分析-开普检测 GB23970
2024-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人