嵌入式课程设计——学习日志

日期: 2018-9-10

第一天:

一.今日任务:

熟悉linux系统的基本操作和相关的终端命令如:ls,cd,vim 文件,gcc 文件 -o one,./one,rm -rf 删除的文件,Esc,shift zz,并熟悉C语言的指针和结构体。

二.今日任务完成情况:

今日任务已按计划完成,上课代码全部正常运行,课后作业已完成。今日代码量:200。

三.今日开发中出现的问题汇总:

变量未声明就调用,因为之前一直写python代码,所以导致不声明就使用。对指针的访问与操作有些生疏,但多敲些代码后已理解。

四.今日未解决问题 :

有些问题没有思路,需要多练。

五.今日开发收获:

熟悉linux系统的基本操作终端命令如:
相关指令 作用
ls 列出当前文件夹下的文件名
cd /文件夹 进入指定文件
vim 文件名.c 进入此文件开始编写代码
Esc 退出写入状态
shift zz 回到终端
gcc 文件 名.c -o one 编译文件.c
./one 执行之前编译好的程序
rm -rf 删除的文件 删除文件
C语言相关数据类型在32位操作系统占用的字节数:
类型 存储大小
int 4个字节
short 2个字节
double 8个字节
long 4个字节
char 1个字节
float 4个字节

int* 4个字节
short* 4个字节
double* 4个字节
long* 4个字节
char* 4个字节
float* 4个字节
指针相关操作:
1.指针变量的声明:类型说明符 *指针变量名;
2.指针变量的初始化:指针变量名 = &变量名;
3.动态存储分配(野指针)需要释放内存。
注意:*p++ 相当于 *p 而 *++p 相当于 *(++p) 指向当前变量的下一个相邻的未知变量。
结构体相关操作
1.结构体总长度一定是最长成员的长度的整数倍
2.每个成员的偏移量一定是该成员长度的整数倍
3.指针操作结构体:p->结构体成员变量;

六.自我评价:

有良好的编程基础,但经常会打错变量名;上课按照老师的讲解能很好理解但还是不够快速的掌握老师上课提出的问题。需要课后多加练习。

七.课后作业:

//3.题目: 输入一个字符串,计算字符串中子串出现的次数

 #include<stdio.h>
int main()
{
     char child[10], parent[20], *p1, *p2;
     int sum = 0;
     printf("请输入父字符串\n");
     scanf("%s",parent);
     printf("请输入子字符串\n");
     scanf("%s",child);
     p1 = parent;
     p2 = child;
     while(*p1 != '\0')
     {
         if(*p1 == *p2)
         {
             while(*p2 != '\0' && *p1 == *p2)
             {
                 p1++;
                 p2++;
             }
         }
         else
             p1++;
         if(*p2 == '\0')
             sum++;
         p2 = child;
	}
    printf("子字符串出现的次数:%d\n",sum);
}

/4. 题目: 编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构./

#include <string.h>
void change(char *str)
{
	char temp;
	char *p = str;
	char *start = str;
	char *end = str;

	while (*p != '\0')
	{
		p++;
		end++;
	}
	end = p - 1;
	p = str;
	while (*p != '\0')
	{
		while (start < end)
		{
			temp = *start;
			*start = *end;
			*end = temp;
			start++;
			end--;
		}
		p++;
	}
}

void change1(char *str)
{
	char *p = str;
	char *start = p;
	char *end = p;
	char temp;

	while (*p != '\0')
	{
		if (*p == ' ' || *p == '\0')
		{
			end = p - 1;
			while (start < end)
			{
				temp = *start;
				*start = *end;
				*end = temp;
				start++;
				end--;
			}
			start = end = p + 1;
		}
		p++;
	}
	end = p - 1;
	while (start < end)
	{
		temp = *start;
		*start = *end;
		*end = temp;
		start++;
		end--;
	}
}
int main()
{
	char str[100];
	printf("please input string:\n");
	gets(str);
	change(str);
	change1(str);
	printf("the result is :%s\n", str);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.掌握的液晶的工作原理以及应用设计。 2.熟练掌握HK-51系统仿真开发系统的应用。 3.加强SED1520的基础知识的理解,特别是其原理和指令系统这两方面,为以后的学习和开发工作打下良好基础。 4.掌握小系统开发设计的流程以及设计思路。 第一章 课程设计目的................................................1 1.1 设计要求...................................................1 1.2 设计目的...................................................2 SED1520介绍................................................4 2.1 所需器材.................................................. 4 2.2 LCD显示器基本原理.........................................4 2.2.1 所选的122×32A液晶显示器类型..........................4 2.2.2 122×32A液晶显示器模块原理图 ...........................5 2.2.3 接口端管脚说明..........................................5 2.2.4 122×32A电路图.........................................7 2.3.SED1520基本原理..........................................8 2.3.1 SED1520的特性...........................................8 2.3.2 SED1520的管脚功能介绍...................................8 2.3.3 SED1520时序特性.......................................10 2.3.4 SED1520显示RAM结构....................................11 2.3.5 液晶模块接口...........................................11 2.4.液晶显示模块指令系统.....................................12 详细设计..................................................16 3.1 设计流程图...............................................16 3.2 部分程序及解说............................................17 3.3 接线方案.................................................28 总结.......................................................29 致谢.......................................................30 参考文献...............
嵌入式系统设计是指将计算机系统集成到其他设备或系统中,以实现特定功能。而基于STM32CubeMX与HAL库的嵌入式系统设计是指利用ST公司的STM32系列微控制器,结合STM32CubeMX工具和HAL库(Hardware Abstraction Layer),进行软硬件设计和开发的过程。 STM32CubeMX是ST公司推出的一款嵌入式系统设计工具,它提供了图形化的界面,可以帮助开发者快速配置STM32微控制器的引脚、时钟、外设等参数,生成初始化代码和项目文件,使整个开发过程更加简化和快捷。 HAL库是STM32系列微控制器的硬件抽象层库,提供了一组封装了底层硬件操作的API接口,使开发者能够更加方便地进行外设控制和数据处理等操作。开发者可以根据具体的需求,选择需要的API接口,编写相应的代码,完成对硬件的控制和操作。 在使用STM32CubeMX和HAL库进行嵌入式系统设计时,可以通过STM32CubeMX工具进行硬件的初始化和配置,生成相应的代码和项目文件。然后,在IDE(集成开发环境)中使用HAL库提供的API接口,编写代码进行软件的开发和应用程序的编写。通过这种方式,开发者可以在短时间内快速完成嵌入式系统设计,提高开发效率和产品质量。 总而言之,基于STM32CubeMX和HAL库的嵌入式系统设计提供了一种快速、简化的嵌入式软硬件开发方法,使开发者能够更加高效地进行嵌入式应用的设计与开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值