自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (2)
  • 收藏
  • 关注

原创 自定义View-流式布局

文章目录流式布局自定义view与自定义viewgroup的区别Android坐标系说明两种坐标系MeasureSpec讲解属性说明普通View的Measure的创建规则表格总结如下系统代码解析流式布局自定义view与自定义viewgroup的区别自定义view一般继承View等其他View,通常实现onMeasure与onDraw方法自定义ViewGroup一般是利用现有的组件根据特定的布局方式来组成新的组件,大多继承ViewGroup或各种Layout,通常实现onMeasure与onLayou

2020-09-27 15:17:37 131

原创 自定义View-01-自定义计步器

这里写自定义目录标题效果预览实现attrs文件创建自定义View重点讲解获取属性计算文字位置计算baseLine计算文字开横坐标效果预览实现attrs文件// 创建attrs.xml(values的目录下面)文件 用来自定义View的属性<?xml version="1.0" encoding="utf-8"?><resources> <attr name="textColor" format="color"/> <attr name

2020-08-03 11:49:17 140

原创 UI-自定义View-方法功能与属性

先占个位置,有空码

2020-07-23 10:14:02 141

原创 python练习1-获取糗事百科的内容保存在本地文件

import requestsfrom lxml import etreeimport jsonimport timeclass QSBK(object): # 初始化请求头,以及需要储存的文件名 def __init__(self): self.headers = { 'User-Agent': 'Mozilla/4.0 (c...

2018-08-20 17:32:35 141

原创 【StringBuffer】StringBuffer的简单使用

代码public class StringBuffer01 { /** * StringBuffer() 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符 * StringBuffer(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。 * StringBuffer(int capa

2018-05-09 08:43:33 817

翻译 【String】一些关于String的面试题目

请参考链接这个链接实在是太干货了! https://www.cnblogs.com/xiohao/p/4296088.html代码public class String03 { public static void main(String[] args) { System.out.println("一些关于 String的面试题目"); String str1 = "abc"; ...

2018-05-07 22:58:56 385

原创 【String】String的一些常用方法

代码public class String02 { /* * public String() 空构造 * public String(byte[] bytes) 把字节数组转换为字符串 * String(byte[] bytes, int offset, int length) 把字节数组的一部分转换为字符串 * String(char[] valu...

2018-05-07 22:54:43 300

原创 【String】Scanner的简单用法

代码段1package scanner01;import java.util.Scanner;public class Scanner01 { public static void main(String[] args) { System.out.println("Hello World."); Scanner sc = new Scan...

2018-05-07 19:27:25 1706

原创 【软件使用】Eclipse中文注释太小

Window -> Preferences -> General -> Appearance -> Colors and Fonts -> Bascic -> Text Font -> Edit -> 西欧语言变成中欧字符 -> 确定&保存

2018-05-07 17:03:07 170

原创 定时器的使用

编程环境 Qt Creator 3.0.0 Base on Qt 5.2.0 (MSVC 2010,32 bit)//ui界面添加一个label控件//mainwindow.h文件private slots: void TimerUpdata();//mainwindow.c文件MainWindow::MainWindow(QWidget *parent) : QMainW

2017-08-04 14:17:11 190

原创 关闭主窗口显示确认退出窗口

测试环境Qt Creator 3.0.0Base on Qt 5.2.0 (MSVC 2010,32 bit)//mainwindow.h文件#include <QCloseEvent>#include <QMessageBox>private slots: void closeEvent(QCloseEvent *event);//mainwindow.c文件void MainW

2017-08-04 11:33:47 899

原创 设置窗口置顶

void MainWindow::on_pushButton_clicked(){ static bool bTop = false; bTop = !bTop; if(bTop) this->setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint); else thi

2017-08-04 11:22:12 2515

原创 NRF51822通道设置的理解

NRF51822共有8个可选择通道(0-7),其中通道0单独设置地址。通道1-7的高4字节公用,低1字节单独设置。 比如; NRF_RADIO->PREFIX0 = 0xC3C2C1C0UL; // 通道3-0的低1字节 NRF_RADIO->PREFIX1 = 0xC7C6C5C4UL; // 通道7-4的低1字节 NRF_RADIO->BASE0 = 0x999999

2017-07-11 15:06:55 921

原创 FreeRTOS学习8--低功耗tickless

#define configUSE_TICKLESS_IDLE 1/*启用低功耗模式FreeRTOSConfig.h文件中*//*低功耗模式的进入与退出函数定义 FreeRTOSConfig.h文件中*/extern void PreSleepProcessing(uint32_t ulExpectedIdleTime);extern void PostSleep

2017-06-11 13:45:52 1286

原创 FreeRTOS学习7--事件标志组

EventGroupHandle_t EventGroupHandler = NULL; /*定义事件标志组*/EventGroupHandler=xEventGroupCreate(); /*创建事件标志组*/#define EVENTBIT_0 (1<<0) #define EVENTBIT_1 (1<<1)#define EVENTBIT_AL

2017-06-10 00:14:47 1299

原创 FreeRTOS学习6--软件定时器

TimerHandle_t TimerHandle_tim1;/*定义定时器1变量*/TimerHandle_t TimerHandle_tim2;/*定义定时器2变量*/TimerHandle_tim1 = xTimerCreate("tim1",1000,pdTRUE,(void *)1,TimerHandle_tim1_callback);/*创建tim1的中断时间1000ms,自动

2017-06-09 22:34:41 406

原创 FreeRTOS学习5--互斥信号量

SemaphoreHandle_t MySemaphoreHandle_led; /*定义变量*/MySemaphoreHandle_led = xSemaphoreCreateMutex();/*创建互斥量*/ if(NULL == MySemaphoreHandle_led) printf("xSemaphoreCreateMutex error\r\n");//L

2017-06-09 19:18:59 666

原创 FreeRTOS学习4--计数型信号量

SemaphoreHandle_t MySemaphoreHandle_led;/*创建变量*/MySemaphoreHandle_led = xSemaphoreCreateCounting(10,0);/*创建计数型信号量*///LED0void led0_task(void *pvParameters){ u8 num = 0; while(1) {

2017-06-09 17:57:44 963

原创 FreeRTOS学习3--二值信号量

SemaphoreHandle_t BinarySemaphore; /*二值信号量句柄*/BinarySemaphore=xSemaphoreCreateBinary(); /*´创建二值信号量*///LED0void led0_task(void *pvParameters){ while(1) { LED0=~LED0; xSemapho

2017-06-09 16:42:13 366

原创 FreeRTOS学习2--队列

QueueHandle_t Led0_Queue; /*定义队列*/Led0_Queue = xQueueCreate(LED0_Q_NUM,sizeof(u8)*LED0_Q_NUM);/*创建队列*/if(NULL == Led0_Queue){ printf("Led0_Queue error\r\n");}err = xQueueSend(Led0_Queue,&

2017-06-09 15:41:28 271

原创 FreeRTOS学习1--任务挂起与恢复

代码//LED0void led0_task(void *pvParameters){ int num = 0; while(1) { LED0=~LED0; num++; if(num%10 == 0) { vTaskResume(LED1Task_Han

2017-06-07 16:42:31 1828

原创 驱动学习8--gpiolib的使用

驱动#include <linux/module.h> // module_init module_exit#include <linux/init.h> // __init __exit#include <linux/fs.h>#include <linux/leds.h> //struct led_classdev#include <ma

2017-06-06 00:45:40 280

原创 驱动学习7--led动态映射与结构体

驱动#include <linux/module.h> // module_init module_exit#include <linux/init.h> // __init __exit#include <linux/fs.h> //register_chrdev file_operations#include <asm/uacces

2017-06-04 19:36:20 293

原创 驱动学习6--新接口alloc_chrdev_region&cdev_alloc的使用

驱动#include <linux/module.h> // module_init module_exit#include <linux/init.h> // __init __exit#include <linux/fs.h> //register_chrdev file_operations#include <asm/uacces

2017-06-04 11:11:09 1094

原创 驱动学习5--led动态映射

驱动#include <linux/module.h> // module_init module_exit#include <linux/init.h> // __init __exit#include <linux/fs.h> //register_chrdev file_operations#include <asm/uacces

2017-06-03 20:31:23 303

原创 驱动学习4--led静态映射

驱动#include <linux/module.h> // module_init module_exit#include <linux/init.h> // __init __exit#include <linux/fs.h> //register_chrdev file_operations#include <asm/uacces

2017-06-03 17:25:01 260

原创 驱动学习3--添加copy_from_user&copy_to_user

驱动代码#include <linux/module.h> // module_init module_exit#include <linux/init.h> // __init __exit#include <linux/fs.h> //register_chrdev file_operations#include <asm/uacc

2017-06-03 10:13:40 227

原创 驱动学习2--注册设备

#include <linux/module.h> // module_init module_exit#include <linux/init.h> // __init __exit#include <linux/fs.h> //register_chrdev file_operations#define DEMO_NAME "de

2017-06-02 16:58:31 184

原创 驱动学习1--最简单的驱动

#include <linux/module.h> // module_init module_exit#include <linux/init.h> // __init __exitstatic int __init chrdev_init(void) /*模块安装*/{ printk(KERN_INFO "chrdev_init\n");

2017-06-02 14:52:23 461

转载 线程学习1--pthread_create

概述因为pthread并非Linux系统的默认库,而是POSIX线程库。在Linux中将其作为一个库来使用,因此加上 -lpthread(或-pthread)以显式链接该库。函数在执行错误时的错误信息将作为返回值返回,并不修改系统全局变量errno,当然也无法使用perror()打印错误信息。正文函数函数原型int pthread_create(pthread_t thread, const pth

2017-06-01 21:01:00 297

转载 多路复用IO&select&poll

概述Linux提供了两个函数来实现多路复用IO操作正文函数select函数原型int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);void FD_CLR(int fd, fd_set *set); int FD_ISSET(int fd, fd_set

2017-06-01 18:06:59 257

转载 fcntl更改阻塞与非阻塞模式&读取鼠标键盘值

#define MOUSE "/dev/input/mouse1"int main(int argc,char **argv){ int fd = -1,ret = -1; char buf[100] = {0}; fd = open(MOUSE,O_RDONLY|O_NONBLOCK );/*鼠标非阻塞*/ if(fd<0) { per

2017-06-01 15:51:39 534

转载 进程学习12--alarm

概述alarm(time);执行之后告诉内核,让内核在time秒时间之后向该进程发送一个定时信号,然后该进程捕获该信号并处理; pause函数的作用就是让当前进程暂停运行,交出CPU给其他进程去执行。当当前进程进入pause状态后当前进程会表现为“卡住、阻塞住”,要退出pause状态当前进程需要被信号唤醒。正文函数alarm函数原型unsigned int alarm(unsigned int s

2017-06-01 11:36:07 399

转载 进程学习11--信号signal

概述正文函数函数原型sighandler_t signal(int signum, sighandler_t handler);参数参数signum我们要进行处理的信号。系统的信号我们可以再终端键入 kill -l查看(共64个)。其实这些信号时系统定义的宏。 (1)SIGINT 2 Ctrl+C时OS送给前台进程组中每个进程 (2)SIGABRT

2017-06-01 10:48:37 772

转载 进程学习10--syslog记录调试信息

概述syslog的守护进程用于解决守护进程的日志记录问题,而日志信息保存的位置和记录的信息级别是在syslogd守护进程的配置文件中设定的。守护进程日志主要涉及3个函数,分别是openlog、syslog和closelog函数。 一般log信息都是在 /var/log/messages文件中存储,ubuntu中是在 /var/log/syslog文件中正文函数openlog函数原型void ope

2017-05-31 20:33:21 268

转载 进程学习9--守护进程&create_daemon

进程查看命令ps (1)ps -ajx 偏向显示各种有关的ID号 (2)ps -aux 偏向显示进程各种占用资源向进程发送信号指令kill (1)kill -信号编号 进程ID,向一个进程发送一个信号 (2)kill -9 xxx,将向xxx这个进程发送9号信号,也就是要结束进程何谓守护进程 (1)daemon,表示守护进程,简称为d(进程名后面带d的基本就是守护进程) (2)长期运

2017-05-31 17:01:48 317

转载 进程学习8--进程状态和system函数

概述进程的5种状态 (1)就绪态。这个进程当前所有运行条件就绪,只要得到了CPU时间就能直接运行。 (2)运行态。就绪态时得到了CPU就进入运行态开始运行。 (3)僵尸态。进程已经结束但是父进程还没来得及回收 (4)等待态(浅度睡眠&深度睡眠),进程在等待某种条件,条件成熟后可进入就绪态。等待态下就算你给他CPU调度进程也无法执行。浅度睡眠等待时进程可以被(信号)唤醒,而深度睡眠等待时不能被

2017-05-31 15:40:58 337

转载 进程学习7--exec族函数

概述为什么需要exec函数 (1)fork子进程是为了执行新程序(fork创建了子进程后,子进程和父进程同时被OS调度执行,因此子进程可以单独的执行一个程序,这个程序宏观上将会和父进程程序同时进行) (2)可以直接在子进程的if中写入新程序的代码。这样可以,但是不够灵活,因为我们只能把子进程程序的源代码贴过来执行(必须知道源代码,而且源代码太长了也不好控制),譬如说我们希望子进程来执行ls -l

2017-05-31 14:55:37 276

转载 进程学习6--waitpid与wait差别

概述(1)基本功能一样,都是用来回收子进程 (2)waitpid可以回收指定PID的子进程 (3)waitpid可以阻塞式或非阻塞式两种工作模式,wait只能是阻塞式工作模式正文函数函数原型waitpidpid_t waitpid(pid_t pid, int *status, int options);参数参数pid表示要回收的PID号(-1表示不指定pid号) 参数status为子进程返回

2017-05-31 11:09:59 237

转载 进程学习5--父进程wait回收子进程

概述wait的工作原理 (1)子进程结束时,系统向其父进程发送SIGCHILD信号 (2)父进程调用wait函数后阻塞 (3)父进程被SIGCHILD信号唤醒然后去回收僵尸子进程 (4)父子进程之间是异步的,SIGCHILD信号机制就是为了解决父子进程之间的异步通信问题,让父进程可以及时的去回收僵尸子进程。 (5)若父进程没有任何子进程则wait返回错误正文函数函数原型waitpid_t

2017-05-31 10:50:29 414

《Qt Creator快速入门》书籍与源码

Qt Creator快速入门的书籍与源代码

2017-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除