- 博客(18)
- 资源 (18)
- 收藏
- 关注
原创 STM32 BUTTON方式(polling & interrupt)
基于stm32 F401 discovery版实现button polling & interrupt点亮LED/** ****************************************************************************** * @file Template/main.c * @author MCD Applicatio
2016-01-29 17:56:23 2487
原创 status_machine(用于状态管理)
一般常用于状态交互/* file name : status_machine.c author : zhongjun description : status_machine demo data : 20150630 time : AM 10:06 key(study) : 预处理器 & enum & typedef & struct & malloc & memset*/
2016-01-28 14:50:36 1481
原创 C语言字符串操作函数
/* file name : sting_func_test.c author : zhongjun description :sting_func_test demo data :20150701 time :PM 22:36 key(study) :string operate note :所有模块单独测试,没有试过一起测试,可能会memory fault*/#in
2016-01-28 14:46:52 747
原创 C操作内存函数(memset,memcpy,memcmp)
/* file name : memory_func_test.c author : zhongjun description :memory_func_test demo data :20150701 time :PM 22:57 key(study) :memory operate*/#include #include char dst_string[20] =
2016-01-28 14:45:04 1098
原创 STM32 NVIC 抢占优先级和响应优先级
抢占优先级和响应优先级STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表明它的优先级别越高。抢占,是指打断其它中断的属性,即因为具有这个属性,会出现嵌套中断(在执行中断服务函数 A 的过程中被中断 B 打断,执行完中断服务函数 B 再继续执行中断服务函数 A),抢占属性由 NVIC_IRQChannelPreemptionPriority
2016-01-26 19:34:59 11609 2
转载 UART中的硬件流控RTS与CTS
UART中的硬件流控RTS与CTS5/23/2013 5:13:04 PM at rock-chips inshenzhen最近太忙了,没时间写对Ucos-II的移植,先将工作中容易搞错的一个知识点记录下来,关于CTS与RTS的。在RS232中本来CTS 与RTS 有明确的意义,但自从贺氏(HAYES ) 推出了聪明猫(SmartModem)后就有点混淆了,不过现在这种意义
2016-01-26 16:22:57 3132
原创 stm32 LED 流水灯剖析(库函数版)
基于stm32 F401 discovery 库函数点亮LED 3,4,5,6一.附原理图一张:分别对应的GPIO为PD12,PD13,PD14,PD15二.Memory and bus architecture #define PERIPH_BASE ((uint32_t)0x40000000) /*!< Peripheral bas
2016-01-26 09:30:26 2983
原创 stm32 启动过程
解析 STM32 的启动过程解析STM32的启动过程当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函
2016-01-21 19:55:02 1476
原创 BCSP 剖析(二)- BCSP link establish过程
本篇结合着HCI TX,RX log解析蓝牙初始化的过程 over BCSP protocolBCSP packet format如连接点击打开链接记录一下BCSP的分析详细流程:BCSP先有一个link establish的过程(建立过程芯片会通过uart和平台交互,分四种封包格式,如图)建立过程分三个阶段:1.State 1 - Shy•
2016-01-20 19:16:42 2118
原创 CSR蓝牙初始化流程
最近遇到acc on/off的蓝牙初始化失败:所以总结下整个蓝牙初始化的流程(基于CSR 8811 module通过uart 和车机连接):一.芯片上电成功后拉下8811 module reset pin ->不是每个moudule都需要这么做二.设置uart band rate为115200,,CSR一般先低速写出错率比较少,通过这个speed 芯片会自动识别出band r
2016-01-15 15:28:13 5531
原创 ringbuffer剖析
#include #define WAVEOUT_BUF_GUARD 1#define MAX_QUEUE 1#define WAVEOUT_BUF_BLK_NUM 16#define WAVEOUT_BUF_BLK_SIZE 1024int audio_dma_has_worked = 0;typedef struct { int read;
2016-01-14 17:25:21 1465
原创 C语言运算符优先级
C语言运算符优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右--()圆括号(表达式)/函数名(形参表)--.成员
2016-01-14 12:02:32 671
原创 通用C 双循环链表(可直接用于项目)
通用C 双向 循环 链表一.用法详解:链表节点struct list_head{ struct list_head *prev; struct list_head *next;};自定义一个链表节点,并初始化:struct list_head list = {0}; INIT_LIST_HEAD(&list); 判断链表是否为空:list_empty(&list
2016-01-11 14:58:20 1252
原创 通用C 链表(linux思想)
通用 C链表,适合任意类型头文件定义Mylist.h# define POISON_POINTER_DELTA 0#define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA)#define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA)
2016-01-09 15:47:40 1230
转载 offsetof与container_of宏[总结]
offsetof与container_of宏[总结]1、前言 今天在看代码时,遇到offsetof和container_of两个宏,觉得很有意思,功能很强大。offsetof是用来判断结构体中成员的偏移位置,container_of宏用来根据成员的地址来获取结构体的地址。两个宏设计的很巧妙,值得学习。linux内核中有着两个宏的定义,并在链表结构中得到应用。不得不提一下l
2016-01-09 14:16:25 613
原创 蓝牙 BCSP 剖析(一)
一.Introduction BCSP( BlueCore Serial Protoco)是CSR的一个协议,不是标准的蓝牙协议,在HCI层之下,通俗点讲:就是HCI又包了一层BCSP协议发给uart,以便做到可靠性传输如图:Host是软件协议栈,Host Controller是芯片端二.ContextAn instance of the BCSP st
2016-01-06 16:15:43 5730 1
原创 LINUX 标注I/O
当打开一个流时,标准I/O函数fopen返回一个指向FILE对象的指针。该对象通常是一个结构,它包含了标准I/O库为管理该流所需的所有信息,包括:用于实际I/O的文件描述符、指向用于该缓冲区的指针、缓冲区的长度、当前在缓冲区的字符数以及出错标志等。为引用一个流,需将FILE指针作为参数传递给每个标准I/O函数。对于标准输入、标准输出和标准出错,他们的文件描述符对应STFIN_FILENO、ST
2016-01-05 12:18:36 711
stm32f1_mrvl88w8801应用笔记_20191220.pdf
2019-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人