- 博客(21)
- 收藏
- 关注
原创 C语言中一个宏关闭或者开启所有printf打印,实战必备
c.在a.h中//#define SUPPORT_LOG来关闭打印,#define SUPPORT_LOG来开启打印就行了。写c语言的时候,程序中有太多的pritnf函数,不过又不想一一去//它们怎么办?b.在其他.c文件中#include一下a.h就可以直接用LOG替代printf。d.具体为什么大家自行百度一下__VA_ARGS__和...关系。1.只需要一个宏就可以屏蔽所有printf。
2023-12-07 18:49:53
1130
原创 函数初始化列表创建和使用
当不想显性调用某一个函数时候,比如文件a.c里有个函数A,若想在main.c里面调用函数A,但是又不想通过函数名A去调用函数A。4.可以在main函数最前面调用module_list_init(),也可以选择其他合适位置。2.通过INIT_MODE_EXPORT将int (*)(void)类型的函数加入到列表中。3.在main.c(或其他.c)中。1.在任意.h文件中。
2023-12-06 10:43:14
520
1
原创 linux字符型驱动开发体验01
#include <linux/kernel.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/cdev.h> #include <linux/wait.h> #include <linux/sched.h> #include <linux/poll....
2022-06-02 16:53:12
157
原创 stm32 按键外部中断开发代码 可对照database理解,汇编代码看中文注释即可
#include<stm32mp1xx_gpio.h>#include<stm32mp1xx_exti.h>#include<stm32mp1xx_gic.h>#include<stm32mp1xx_rcc.h>voidhal_gpio_init(void);voidhal_exti_init(void);voidhal_gicd_init(void);voidhal_gicc_init(void);...
2022-05-16 15:06:56
807
原创 stm32mp157学习记录 uart开发
unsignedcharget_a_byte(){unsignedcharc;while(!(USART4->ISR&(0X1<<5)));//判断RXFIFO中数据是否被接收 c=USART4->RDR;//接收数据returnc;}void send_a_byte(constchardata){...
2022-05-11 11:58:06
253
原创 AliOS Thins ubuntu16.04下环境搭建
1:准备工作,亲测在ubuntu16.04环境下进行 1.更新软件源列表sudo apt update 2.更新所有应用为最新软件sudo apt upgrade 3. 安装python pip gitsudo apt-get install -y python python-pip git ...
2022-05-09 11:21:34
371
原创 基于golang做一个简易私有网盘
服务器端代码main.gopackagemainimport("io""net/http""os""fmt")funcuploadHandler(whttp.ResponseWriter,r*http.Request){r.ParseMultipartForm(32<<20)file,handler,err:=r.FormFile("file")iferr!=ni...
2022-03-02 14:56:05
1033
原创 uart接受串口数据(DMA+IT方式,基于HAL库)
1.通过stm32cubeMx使能usart1并使能usart1中断,开启usart1的接受DMA2.在void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)函数的最后添加//使能空闲中断__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE)。huart1为usart1句柄。UART_IT_IDLE为串口空闲的一个宏3.在main函数紧挨着while(1)且在while(1)前面的地方加入
2022-02-10 16:23:13
1463
原创 c语言写得有点像python
代码://__VA_ARGS__ 可变参数 由...替代#include <math.h>//里面有NAN,不知道NAN的可以百度一下用法#include <stdio.h>#define makelist(...) (double[]){__VA_ARGS__, NAN}#define sum(list1, list2) sumA(makelist list1, makelist list2)//将数组1和数组2中的元素相加结果返回double sumA...
2021-11-19 10:30:10
1222
原创 c语言求回文数
输入121返回1,因为121是回文数输入123返回0,因为123不是回文数小于0的数不是回文数bool is_palindrome(int x){ int y = x;//记录一下x的值 long int value = 0;//存储x的反倒值 if(x < 0){//x小于0直接返回0; return 0; } while(x > 0){ value = value * 10 + x % 10;//倒置x的关键...
2021-11-17 10:43:20
651
原创 c语言实现将字符串转换为整数(atoi)
intmyAtoi(char*str){intvalue=0;charsysmbol=' ';//先取出空格while(*str==' '){str++;}//取正负号if(*str=='+'){sysmbol='+';str++;}elseif(*str=='-'){sysmbol='-';...
2021-11-17 09:58:32
1017
原创 c语言实现字符串以指定字符进行分割
1 #include <stdio.h> 2 #include <stdlib.h> 3 char** split(char* s, char* o){ 4 int num = 0;//记录.出现的个数 5 int index = 0; 6 char* temp1 = s; 7 char* temp2 = s; 8 char* temp3 = s; 9 //...
2021-11-08 16:01:33
2779
原创 c语言字符串长度获取
代码如下:/*函数:int getStrLen(const char* headChar)输入参数:headChar:需要判断长度的字符串的首地址返回值:字符串长度*/#include <stdio.h>int getStrLen(const char* headChar){ int len = 0;//接受字符串长度的一个变量 while(*headChar){//如果headChar指针的值不为空,则进入while循环 headChar+...
2021-11-04 11:34:25
805
原创 c语言拼接两个字符串函数strcat的实现
代码如下:/*函数定义:void StrCat(char* headChar, char* tailChar)函数参数:headChar:需要拼接的字符串首地址tailChar:拼接内容字符串的首地址功能:拼接字符串*/#include <stdio.h>void StrCat(char* headChar, char* tailChar){ char* tempChar = headChar;//用tempChar来修改地址的值,这样headChar还是指向...
2021-11-04 11:15:03
3770
原创 makefile的简单应用纪录(将多个文件各生成一个.o文件)
# -C dir读入指定目录下的Makefile# -f file读入当前目录下的file文件作为Makefile# -i忽略所有的命令执行错误# -I dir指定被包含的Makefile所在目录# -n只打印要执行的命令,但不执行这些命令# -p显示make变量数据库和隐含规则 # -s在执行命令时不显示命令# -w如果make在执行过程中改变目录,打印当前目录名CC = gcc #定义CC为gccOBJS = main.o p1.o p2.o p3.o p4.o p5.oOB...
2021-11-04 10:28:03
1504
原创 新手入门stm32F407用寄存器点亮一个led灯过程分享
纪录一下自己的学习stm32寄存器点灯的过程看完这个过程可能不会让你点灯成功但是会让大家对寄存器点灯更加透彻1.我觉得寄存器点灯是stm32中非常需要学习的东西2.直接上手库函数的话可能就不知道自己用的东西是怎么回事(底层一点的知识)3.库函数是建立在寄存器的基础上的先来类比一下:大家试想一家酒店有很多家房间,房间都有门牌号,我们可以将这个门牌号看成c语言中的指针。房间这个实体看成寄存器,我们就可以通过门牌号去找到各个寄存器,也就是通过指针去找到寄存器,当然找到房间之后我们可以改变房间里
2021-10-29 16:08:16
1809
原创 c语言中输入一个字符串逆序输出
#include <stdio.h>void nixu(char* str, int len){ char temp; for(int i = 0; i < (len / 2); i++){ temp = str[i]; str[i] = str[len - i - 1]; str[len - i -1] = temp; } fo...
2021-10-27 21:47:36
3093
原创 c++中简单的模板编程
/*函数的模板*///案例要求:需要一个两数相加的函数,该函数能进行任一同类型数据的相加,不同类型的数直接template<typename T1, typename T2>void sum(T1 a, T2 b)。#include <iostream>using namespace std;//书写格式如下 其中template <typename T>是固定的,后面正常加普通函数定义就行// T 就当成一个数据类型,如int float double 等等。
2021-10-26 17:11:13
189
原创 c++中使用多线程
通过pthread_create创建线程,然后将类函数通过函数指针的方式传入,在将Student类传参传入线程函数。编译时用g++ main.c -o main -std=c++11 -lpthread ,线程间可以通过指针进行数据共享。#include <pthread.h>#include <iostream>#include <time.h>#include <stdio.h>#include <unistd.h>using n
2021-10-26 16:10:18
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人