- 博客(15)
- 资源 (5)
- 论坛 (2)
- 收藏
- 关注
原创 C语言__attribute__学习记录
一、sectionsection 用于指定变量或函数存储段,例如:int *A__attribute__((section(".mysec"))) = &B;就会把变量a放在.mysec段,可以放多个变量在同一个段,同一个段的变量在地址上是连续的。不同段之间地址没有必然联系,即使紧接着.mysec段后面定义一个.mysec1也不能保证后面段的起始地址是在用法举例:#include <stdio.h>//定义函数指针类型typedef int(*ex...
2020-05-14 17:20:53
80
原创 大端小端存储方式以及区别方法
一、大小端存储区别大端存储:低字节放在高地址,高字节放在低地址。小端存储:高字节放在高地址,低字节放在低地址。数据0X12345678在0X20000000地址上的存储方式:地址 小端 大端 0X20000000 0X78 0X12 0X20000001 0X56 0X34 0X20000002 0X34 0X56 0...
2020-03-20 12:01:21
875
原创 IIC、SPI、UART串行通信以及同步/异步通信学习
一、IIC连接线:VCC、GND、SDA、SCK。半双工异步通信。MSB。速率:100Kbps、400Kbps、3.4Mbps。数据采集:SCL为高电平期间采集,因此SDA必须在SCL为低期间跳变。空闲状态:SCL、SDA同为高。因此电路设计一般加上拉电阻。起始信号:SCL为高时SDA上出现下降沿。停止信号:SCL为高时SDA上出现上升沿。读写位 :1为读,0...
2020-03-14 17:39:41
1606
原创 rtthread 学习记录以及一些简单问题总结
1、目录结构在rtthread工程中一般有Drivers、DeviceDrive、Application、stm32_hal、kernel、finsh、libc、cortex-M3这八个目录,其中stm32_hal是官方驱动。kernel是rtt内核,finsh是rtt自带的控制台组件,可以进行简单的交互,有点类似低配版linux的命令行。libc是如果用到一些类似于time函数的库文件。co...
2020-03-14 15:47:18
197
原创 海盗喝酒问题
有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复......直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船.........
2019-08-06 17:03:31
60
原创 删除一个数组其中一些元素后将剩余元素顺序排列
#include "string.h"#include <stdio.h>#define M 12#define N 4int A[M] = { 432,32,54,2,654,243,9,4,54,2,34,6 };int D[N] = { 3,5,6,9 };void del(int *D){ int i = 0,L = N; for (i = 0...
2019-07-19 15:51:55
237
原创 STM32无法正常把程序下载到非起始地址(生成HEX文件地址不对应keil中设置地址)问题解决方法
在编写BootLoader时要下载程序到非起始地址上,问题的现象就是下载失败,表现为下图所示: 即使可以下载程序完了读取发现下载的部分是由从起始地址下载程序截取的,下图中的设置没有任何作用。 查了一圈发现是生成的hex文件地址有问题,以为是mdk的bug,最后想通过j-flash ...
2019-07-10 18:24:19
1040
原创 rt-thread在stm32上运行修改外部晶振
首先要将外部晶振的值修改为实际晶振的频率方法为:找到rtconfig.h 修改里面的 RT_HSE_VALUE 800 0000为 1600 0000,如下图所示,第156行即为修改过后值。 然后调整系统时钟初始化的预分频与倍频使之得到想要的72MHz时钟频率,默认为8M 进行1分频然后9倍频得到72M时钟频率,这里用的16M,而没有4.5倍频,因此要进行2分频,然后9倍...
2018-12-15 10:14:40
1917
原创 ARM M3、M4系列单片机bootloader介绍以及编写
BootLoader与正常程序在功能上完全一样,可以理解为两个程序,只不过在BootLoader运行完后会跳转到想要运行的程序中去,BootLoader也是主函数开始运行、也可以调用串口等外设,这也是可以串口下载程序的原理吧,在串口接收到你要下载的程序,然后将其写到flash中,再跳转过去,当然不仅仅可以用串口,还可以用其他任何可以进行数据传输的方式。要完成跳转需要进行以下几个操作:一...
2018-12-04 15:47:28
1733
原创 在linux上编译和使用JDBC
编译 : javac -cp XXXXX.jar *.java使用 : java -cp XXXXX.jar :.Main
2018-05-26 09:48:01
831
原创 安卓开发记录
1.截图(http://www.jb51.net/article/110655.htm) //合适的地方初始化数据 DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); width = metric.wid...
2018-05-08 20:05:36
174
原创 Android开发中特殊textview使用
SpannableString spanString = new SpannableString("没有账户?注册为新用户");//设置指定位置指定颜色,并添加响应spanString.setSpan(new ClickableSpan() { @Override public void updateDrawState(TextPaint ds) { super...
2018-04-17 15:20:40
108
原创 C语言特殊宏定义的使用
1、##是将字母变成字符串的宏定义用法:#define N(a) #aprintf("%s",N(fdaf));输出为fdaf。不可能做到将一个变量通过这个操作变成字符串(比如int a =5,不能N(a)得到“5”,得到的只是“a”),但是宏定义的常量可以。需要一个中间宏如下:#define N(a) _N(a)#define _N(a) #a#define C 3print...
2018-04-03 10:33:11
187
原创 Orange pi GPIO输出控制,从点灯开始!
在拿到这块orange pi后就百度了下怎么控制它的GPIO,结果看到了这些说的很清楚,貌似可以直接开始动手了,但是那个44怎么来的,我又怎么把它和自己的orange pi 上的引脚联系起来呢?只说到引脚编号=控制引脚寄存器基数+控制引脚寄存器位数,但是不知道控制引脚寄存器基数。去看了看用户手册,还是没有,后来找到一个文章(https://www.cnblogs.com/muhuacat/...
2018-04-02 09:18:01
5070
原创 b站IJKPlayer试用问题
So包不是自己编译的,编译过程中出现了各种问题(没有linux/pre_event头文件和最开始编译FFmpeg一样的问题,后来看了下就是在编译FFMpeg的时候报了这个错误,因为之前编译FFmpeg的时候就在google上查到是因为版本太新(准确说是编译脚本.sh更不上版本的问题)就手动将里面的ffmpeg换位旧一点的版本,这个错误没了,但是还有其他错误),就放弃了自己编译,选择使用别人...
2018-03-24 18:34:55
337
MDK5 NRF52832 52810相关pack.7z
2019-12-19
4G模块7600CE 如何使用https
发表于 2019-01-22 最后回复 2020-06-24
qt事件过滤器无效,
发表于 2019-12-19 最后回复 2019-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝