C
suDreamer
这个作者很懒,什么都没留下…
展开
-
在keil5(MDK5)上搭建51环境
前提:电脑已经安装好了keil5环境(MDK-Arm)第一步去官网下载 C51第二步双击执行 *.exe文件它会自动扫描到你的keil5环境,然后直接安装到keil5的安装目录中去。破解操作我就不累赘了,网上多的是。第三步如下创建一个51或52项目示范 然后再手动添加一个C文件到项目中,写上主函数即可编译。备注:需要使用下载助手来辅助烧录...原创 2021-07-11 20:15:04 · 3744 阅读 · 1 评论 -
1. 内核模块的创建
#include <linux/module.h>#include <linux/printk.h>// 定义 **__init** 函数static int __init hello_init(void){ printk(KERN_EMERG "hello, init\n"); return 0;}// 定义 **__exit** 函数static void __exit hello_exit(void){ printk(KERN_EME原创 2021-03-25 14:56:35 · 183 阅读 · 0 评论 -
2. 字符串设备的创建
#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/device.h>// 主从设备号(高12位为主设备号,底20位为从设备号)~~~in include/linux/types.hstatic dev_t s_dev;// 设备类static struct class *s_class;// 自动创建最大设备数stat原创 2021-03-25 14:51:15 · 137 阅读 · 0 评论 -
创建一个内核模块最基本的步骤
创建一个内核模块最基本的步骤定义 __init 函数static int __init hello_init(void){ printk(KERN_EMERG "hello, init\n"); return 0;}定义 __exit 函数static void __exit hello_exit(void){ printk(KERN_EMERG "hello, exit\n");}绑定init函数module_init(hello_init);原创 2021-03-25 09:52:57 · 209 阅读 · 0 评论 -
Linux下使用一个makefile编译多目录C文件
CompileTest--------Base----------------base.c----------------base.h --------Print----------------print1.c----------------print2.c----------------print3.c----------------print.h...原创 2019-10-24 09:54:33 · 1295 阅读 · 0 评论 -
枚举的运算
#include<stdio.h>typedef enum { Led_Off = 0, Led_1 = 2, Led_2 = 3, Led_3 = 5,} Led;int main(int argc, char** argv){ for (Led l = Led_Off; l < Led_3; ++l) { printf("%d\n", l); ...原创 2019-10-16 10:28:44 · 319 阅读 · 0 评论 -
指针数组与数组指针
中文取名角度:谁在后面谁就在最外面;用的时候就像剥东西一样,从外面剥起。语法角度:谁的优先级高谁就在最外面。例如:int *p[10],中括号的优先级高,最外面必然是数组,数组里面每一个成员都是int *型;int (*p)[]="zifuchuan",小括号的优先级高,最外面必然是指针,指针指的是一个int []数组;通过两个东西思维的里外关系就可以将中文取名和语法联...原创 2019-10-16 10:26:49 · 192 阅读 · 0 评论 -
使用牛顿迭代法实现开方运算
#include<stdio.h>double mysqrt(double in){ double x = 0.0; double y = in / 2; while (x != y) { x = y; y = (x + in / x) / 2; } return x;}int main(int argc, char** argv){ while (...原创 2019-10-16 09:58:00 · 357 阅读 · 0 评论 -
变量是直接取值来使用的
#include <stdio.h>static const int In1 = 5;static const int In2 = 5;static char *ChP1 = "chen";static char *ChP2 = "chen";int main(int argc, char** argv){ printf("In1:%p, In2:%p\n", &...原创 2019-10-16 09:56:37 · 353 阅读 · 0 评论 -
斑马线黑条个数识别函数
笔记:#define IMAGE_HIGH 60#define IMAGE_WIDTH 80uint8_t zebraCntBlack(uint8_t line, uint8_t image[IMAGE_HIGH][IMAGE_WIDTH]){ int8_t i = 0, cnt = 0, flag; while (i < IMAGE_WIDTH) { flag = i...原创 2019-09-12 10:21:50 · 349 阅读 · 0 评论 -
中间字符串的替换
详细说明:用<字符串src>替换掉<字符串des>的中间字符串(根据索引和长度来实现)u8* str_replace(u8 *des, u8 index, u8 len, u8 *src){ u8 des_length = strlen((const char*)des); u8 src_length = strlen((const char*)sr...原创 2019-08-09 12:44:42 · 864 阅读 · 0 评论 -
(参考printf)将字符串显示到LCD屏上
第一步,将整数转换成字符串第二步,中间字符串的替换第三步,整合注:使用到不限个数传参的思想//将整数插入到字符串当中 //str :字符串//... :模仿标准printf,不过目前只支持%d//注意:返回的指针是个临时申请的字符串,使用完这个函数后记得freeu8* myprintf(u8* str, ...){ va_list ap; ...原创 2019-07-19 20:06:41 · 4507 阅读 · 0 评论 -
怎么把整数转换成字符串?
为了解决LCD屏上显示正负整数的麻烦,特意写出这个函数:uint8_t* num2string(int16_t num){ uint8_t count = 0; int16_t temp_num = num; if(num <= 0) { count++; temp_num = -num; } while...原创 2019-07-19 19:58:12 · 4742 阅读 · 0 评论