- 博客(21)
- 收藏
- 关注
原创 嵌入式实时操作系统UCOSII学习笔记之UCOSII几个相关概念的理解
1、任务优先级2、任务堆栈如以下两行代码: OSTaskCreate(led0_task,(void *)0,(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-1],LED0_TASK_PRIO); OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_S...
2018-03-29 00:00:28 1078
原创 STM32之Systick定时器解析
在ARM Cortex-M3内核中有一个Systick定时器,它是一个24位的倒计数定时器,当计数到0时,它就会从Load寄存器中自动重装定时初值,只要不把CTRL寄存器中的ENABLE清0,它就永不停。对于滴答定时器的理解主要分为下面几项:1.滴答定时器的时钟来源看上面的图会有一个错觉,以为滴答定时器是系统时钟的1/8,其实不是,滴答定时器的时钟既可以是HCLK/8,也可以是HCLK,这个是通过...
2018-03-28 13:09:24 989
原创 STM32f4的ADC相关寄存器学习
1、ADC控制寄存器:SCAN位:设置扫描模式,1扫描,0关闭RES位设置分辨率00:12位分辨率ADON位:开关AD转换器CONT位:是否连续转换ALIGN:对齐,0右对齐EXTEN【1:0】:规则通道的外部触发使能设置SWSTART:用于开始规则通道的转换,每次转换(单次转换模式下)都需向该位写1。2、ADC通用控制寄存器TSVREFE:内部温度传感器和Vrefint通道使能位ADCPRE[1...
2018-03-16 15:26:22 2508
原创 STM32固件库中assert_param的作用
assert_param是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。所谓有效的参数是指满足规定范围的参数,比如某个参数的取值范围只能是小于3的正整数,如果给出的参数大于3,则这个assert_param()可以在运行的程序调用到这个函数时报告错误,使程序员可以及时发现错误,而不必等到程序运行结果的错误而大费周折。以下是从固件库中复制粘贴的:void ADC_Cmd(...
2018-03-16 14:02:55 676
原创 逐次逼近比较型adc原理
adc模块的精度一般有8位、10位、12位、16位、24位。以5V的ADC模块为例介绍:8位的精度:把0~5V分成256份,每份表示5/256=0.02V;10位的精度:把0~5V分成1024份,每份表示5/1024=0.005V;12位的精度:把0~5V分成4096份,每份表示5/4096=0.0012V;16位的精度:把0~5V分成65536份,每份表示5/65536=0.000076V;24...
2018-03-15 15:17:55 21943 1
原创 UART通用异步收发传输器概述
1、概述通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。2、通信协议UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。其中各位的意义如下:起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。资料位:紧接着起始位之后。资料位的个数可以是4、5...
2018-03-13 22:59:41 3252
原创 __I、 __O 、__IO是什么意思?
__I、 __O 、__IO是什么意思? 这是ST库里面的宏定义,定义如下:#define __I volatile const /*!< defines 'read only' permissions */#define __O volatile /*!< defines 'write o...
2018-03-13 08:51:46 6964 2
原创 STM32自带的SPI实现对外部FLASH(W25Q128)的读写
实验功能:通过KEY1按键来控制W25Q128的写入,通过另外一个按键KEY0来控制W25Q128的读取。硬件电路:软件配置://以下是SPI模块的初始化代码,配置成主机模式 //SPI口初始化//这里针是对SPI1的初始化void SPI1_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; SPI_InitType...
2018-03-12 23:22:46 28997
原创 调试组件USMART的学习
1. 简述USMART 是由 ALIENTEK 开发的一个灵巧的串口调试互交组件,通过它你可以通过串口助手调用程序里面的任何函数,并执行。因此,你可以随意更改函数的输入参数(支持数字 ( 10/16进制, 支持负数)、字符串、函数入口地址等作为参数),单个函数最多支持 10 个输入参数,并支持函数返回值显示。2. USMART功能简述USMART 的功能类似 linux 的sh...
2018-03-12 00:06:06 3951
原创 怎样让MDK下载完程序后直接就可以运行,而不用手动复位或重新上电等操作
设置:options for target->Debug->Use->Setting->Flash Download->Reset and Run。如下图:
2018-03-10 11:48:06 13502 5
原创 IIC实现对EEPROM(24C02)的读写
概述:EEPROM芯片型号为24C02,该芯片的总容量是256个字节,该芯片通过IIC总线与外部连接。实验功能:通过KEY1按键来控制24C02的写入,通过另外一个按键KEY0来控制24C02的读取。硬件电路:IIC配置代码://初始化IICvoid IIC_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1Pe...
2018-03-10 11:10:39 16260 1
原创 STM32启动文件中 [WEAK]的作用
标记__weak 或 [weak]的函数 就是用在本文件占位的,如果别的文件重写的这个函数就用别文件的,否则使用本文件的。加上了 [WEAK] 修饰. 用户可以根据自己的需要重新编写自己的处理函数, 而且只要命名一样就 OK 了....
2018-03-10 08:48:36 1763
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人