- 博客(30)
- 收藏
- 关注
原创 CMAKE指令介绍
cmake_minimum_required(VERSION 3.5 FATAL_ERROR):设置CMake所需要的最低版本,如果实际使用的版本低于设定版本号是会出现致命错误的。project(demo LANGUAGES CXX):申明项目的名称demo以及支持的语言CXX。add_executable(hello-word hello-word.cpp):指示CMake创建一个目标,可执行文件hello-word,这个可执行文件是通过编译和连接源文件hello-word.cpp生成的。ad
2021-08-11 11:19:18
467
原创 HIP编程学习之API例程
HIP API包括hipMalloc、hipMemcpy和hipFree等函数。熟悉CUDA的程序员也能够快速学习并开始使用HIP API编写代码。通过hipLaunchKernel的宏调用启动计算内核。下面给出了一个最简单的HIP编程的例子。其实有更多关于API接口的使用说明的,可以参见下面的材料。https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_HIP_API_Guide_4.2.pdfhttps://github.co.
2021-08-02 20:00:19
1349
原创 HIP编程学习之相关术语介绍
在学习一门新的技术之前,除开了解相关的背景之外,还必须清楚的是相关的术语,这会节约你在评阅阅读相关技术文档以及技术交流时的时间,减少相关的障碍。HOST:启动相关设备的一个主机,你可以简单的理解成一个电脑的CPU,在整个运行中扮演者人体大脑的地位。DEVICE:设备,也就是我们这个行业里所说的GPU。通常会有很多个GPU设备,如果需要切换设备的话,可以用API:hipSetDevice实现。thread:线程。HIP-Clang:异构AMD的GPU编译器,具有在AMD平台上编译HIP程序的能
2021-08-02 19:54:54
1060
原创 HIP编程学习之特性介绍
首先还是要闹闹磕,我是一个这相关领域出入门道的新手,一切都是新的开始,从这边文章开始,和大家一起分享我对CUDA以及HIP(ROCm)学习的历程以及心得。其中或多或少肯定有不对的地方,希望大家踊跃的在评论区留下你的建议。FEATURE HIP其实和CUDA是有很大程度上的一致性的。当然你想把HIP理解成CUDA的1:1我觉得也不过分。毕竟HIP就是从CUDA中移植过来的。 HIP支持C++编程的。 HIP也是允许开发者在不同的平台上来...
2021-08-02 19:32:52
1834
原创 STM32之独立看门狗和窗口看门狗定时器
STM32F10系列芯片内置了2个看门狗,提高了更高的安全性等好处。独立看门狗(IWDG)是由专门的40KHz的低速时钟驱动,即使主时钟发生故障也仍然有效。IWDG的主要特征有自由运行的递减计数器,时钟由独立的RC振荡器提供,看门狗被激活后,则在计数器计数至0x000时产生复位。WWDG的主要特征有可编程的自由运行递减计数器,条件复位:当递减计数器的之小于0x40,若看门狗被起动则产生复位
2016-11-03 09:03:54
8188
原创 STM32之定时器的一般应用
STM32系列芯片拥有最少3个、最多8个16位的定时器,这是定时器通过可编程预分频器驱动的16位自动装载计数器构成。定时器的主要功能有如下几个大点:1.16位向上、向下、向上/向下自动装载计数器。2.16位可编程预分频器。3.4个独立通道(输入捕获,输出比较,PWM生成,单脉冲模式输出)。4.使用外部信号控制定时器和定时器互连的同步电路。5.如下事件发生时产生中断/DMA(
2016-11-02 10:09:16
6894
转载 模拟电子技术的一点心得(转)
一、模拟大神的几点学习建议(教材)我学习模电有一段时间了,向大家推荐几本自认为的"宝典",谈下自己使用它们的感受以及在学习模电过程中的体会,供后来者参考:1. 拉扎维的《模拟CMOS集成电路设计》,我们研二模电课的教材,汪宁老师把这门课讲得可圈可点。当时没意识到有其他书,于是我就把此书读了好几遍。此书内容多摘自较新的论文,还未得到工业界的实践论证,所以一大特点就是pitfall
2016-10-20 16:22:28
8309
原创 模拟电子技术之放大电路及各组态的性能介绍
在模拟电子技术中,我们从接触简单的二极管到三极管(BJT),再到集成电路,我们都需要掌握最基本的原件的基本结构与主要参数的表征问题。以下我不去阐述二极管以及三极管(BJT)的内部组成,这一部分大家可以参照相关资料有比较详尽的介绍。在三极管中,非常重要的一个值是静态工作点Q,静态工作点Q对于三极管的失真问题有很大的影响,所以在设计的时候,必须做好Q点的设置,否则会出现饱和失真或者截止失真。分析放
2016-10-20 15:57:26
1097
原创 STM32之ADC库函数的介绍
ADC的基本概念希望各位网友查阅相应的手册,上面对ADC有比较详尽的介绍,包括误差的分析和消除。这里主要介绍ADC的基本库函数的定义和使用。1.ADC_DeInit函数的功能是将外设ADCx的全部寄存器重设为默认值。ADC_DeInit(ADC2);2.ADC_Init函数的功能是根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器。其中ADC_InitTypeD
2016-10-18 10:17:49
16446
原创 STM32值SPI的使用及SPI初始化注意事项
在STM32F10x系列芯片中,虽然所拥有的SPI同步串口数量不相同,但是初始化的方法都是一样的。其中使用SPI时候我们回忆GPIO的使用,要注意6点,我们这里主要讲解一点。根据系统对该不同功能的要求,初始化不同功能外设,初始化GPIO,初始化SPI同步串口设备就会比较复杂。STM32F10x系列芯片的所有SIP同步串口都是和GPIO共用,SPI的初始化分为2大块,就是SPI所使用的I/O口的
2016-10-14 11:00:49
50326
3
原创 STM32之SPI库函数介绍
首先SPI的一些基本介绍参照相关芯片的库函数或者使用手册,以下介绍SPI库函数的基本用法和参数的定义。1.SPI_DeInit函数的功能是将外设SPIx寄存器重设为默认值。输入参数SPIx可以是1和2,是用来选择SPI外设的。2.SPI_Init函数的功能是根据SPI_InitStruct中指定的参数初始化外设SPIx寄存器。SPI_InitDefType的结构体是定义在文件stm32f1
2016-10-14 09:49:53
8855
1
原创 STM32之BKP后备域库函数介绍
1.BKP_DeInit函数的功能是将外设BKP的全部寄存器重设为默认值。2.BKP_TamperPinLevelConfig函数的功能是设置侵入检测引脚的有效电平。.BKP_TamperPinLevel可取的值有.BKP_TamperPinLevel_High/_Low.分别是检测高低电平。3.BKP_TamperPinCmd函数的功能是使能或失能引脚的侵入检测功能。BKP_Ta
2016-10-12 21:11:00
8623
1
原创 STM32之RTC实时时钟库函数介绍(1)
本章主要是介绍RTC的响应库函数使用方法。1.RTC_ITConfig函数的功能是使能或者失能指定的RTC中断,其中输入参数是32位的待使能或失能的RTC中断源。但是在使用该函数之前,必须先调用函数RTC_WaitForLastTask(),等待标志位RTOFF被设置。该函数参数可取的值为RTC_IT_OW/ALR/SEC,表示溢出中断使能,闹钟中断使能,秒中断使能。例:使能秒钟中断
2016-10-12 20:21:55
9491
原创 STM32之实时时钟和备份寄存器介绍
在本文中主要讲述RTC寄存器的配置问题。在配置RTC寄存器的时候必须配置RTC_CRL寄存器中的CNF位,使得RTC进入配置模式之后,才能写入RTC_PRL,RTC_CNT,PTR_ALR寄存器。另外很重要的是,在对RTC任何寄存器的写操作,都必须在前一次写操作结束后进行,可以通过查询RTC_CR寄存器中的RTOFF状态位,判断RTC寄存器是否处于更新中。仅当RTOFF状态位是1时,才可以写入RT
2016-10-12 20:09:30
2923
原创 STM32之系统时钟的建立
这里必须阐明系统时钟的简历对于系统运行的重要性。系统所有的运行都是建立在时钟的正常运行上的,没有稳健的系统时钟,就不可能有稳定的系统。在系统中,复位后首要的任务是建立系统时钟,以下是建立系统时钟的基本步骤:1. 将所有的RCC外设寄存器重设为默认值;2.启用外部高速晶振;3.等待,知道外部高速晶振稳定;4.设置欲取指缓存使能和代码延时值;5.设置AHB(HCLK)等于系统时
2016-10-12 19:45:42
675
原创 STM32之RCC库函数介绍2
1.RCC_PLLCmd函数的功能是使能或者失能PLL。参数可以输入的是ENABLE 和 DISENABLE。先决条件是如果PLL被用于系统时钟,那么就不能失能。2.
2016-10-11 22:37:48
2953
原创 STM32之RCC库函数介绍以及应用
在RCC库函数中,我们主要介绍一下几个常用函数。1.RCC_DeInit函数的功能是将外设RCC寄存器重设为默认值。这个函数不改动寄存器RCC_CR的HSITRIM[4:0]位,不会重置RCC_BDCR寄存器RCC_CSR。2.CC_HSEConfig函数的功能是设置外部高速晶振(HSE),其输入参数是32位的RCC_HSE:HSE的新状态。产生该动作的先决条件是加入HSE被直接或通过PL
2016-10-11 21:59:27
3426
原创 STM32之复位和系统时钟
首先明白复位是一个很重要的部分,复部分设计的好坏关系到整个系统的稳定。一般来说,STM32F10系列芯片都具有系统复位,电源复位和备份区域复位。这里分开说明三种复位的基本知识点。系统复位中,系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器,以下事件中的一件发生都会产生一个复位时钟:1.NRST管脚上的低电平(外部复位);2.窗口看门狗计数终止(WWD
2016-10-11 21:25:56
4159
原创 STM32之中断函数介绍篇
NVIC驱动有很多的用途,如使能或者失能IRQ(中断请求),或者是使能或失能单独的IRQ通道,或者是改变其优先级。以下介绍相关函数的功能和基本用法。1.NVIC_DeInit函数的功能是将外设NVIC寄存器重设为默认值。2.NVIC)PriorityGroupConfig函数的功能是设置优先级分组:先占优先级和从优先级,且有一个输入参数是优先级分组的长度例:定义先占优先级1,从优先级3
2016-10-11 16:37:14
11474
原创 STM32之外部中断和中断控制器
在外部中断和中断控制器中,我们首先阐述嵌套向量中断控制器(NVIC),他和处理器核的接口紧紧相连。可以实现低延时的中断处理和处理晚到的中断。主要具有以下几个特点:1.60个可屏蔽中断通道;2.16个可编程的优先等级;3.低延时的异常和中断处理;4.电源管理控制;5.系统控制寄存器的实现。
2016-10-10 16:20:08
1936
原创 STM32之系统时基定时器中如何完成按键防抖动问题
在按键演示防抖动部分的主要思路是:利用系统定时器溢出间隔中断来延时防抖。这样做可以提高代码的执行效率。我们怎么去很好的利用这个系统定时器来延时呢?如果只是简单在系统定时器中断中置位延时标志位,没有任何意义,我们需要有一个标志位来允许置延时标志。第一次扫描到有按键按下时,延时标志肯定为空,那么在此置位一个标志位,来允许系统定时器中置位延时标志,就解决了这个问题。软件的逻辑结构是:如果没有延时,则
2016-10-10 15:44:25
5265
原创 STM32值系统时钟初始化程序设计
正如之前文章所述,在使用外设功能时,都必须提前对其精心初始化才能使用其功能。以下是系统定时器初始化的程序清单。#include"stm32f10x_lib.h"unsigned char sys_nub;//系统定时器中断计数变量//SysTick 设置void Systick_Config(void){//失能SysTick定时器SysTick_CounterCm
2016-10-10 15:07:24
1947
原创 STM32之系统时钟基定时器
STM32F10x内核中都具有一个系统时钟基定时器,是一个24位的递减计数器。在其设置处置并使能后,每经过一个系统时钟周期,计数值减1.档计数值减到0时系统时基定时器又会自动重载初值。系统时基定时器每10ms就会产生一次中断。接下来主要介绍库函数。1.SysTick_CLKSourceConfig函数的功能是设置SysClock的时钟源。其中输入参数为SysTick_CLKSource
2016-10-10 13:49:20
2495
原创 STM32 USART库函数介绍2
USART_Cmd函数的功能是使能或失能USART串口外设。例:使能USART1USART_Cmd(USART1,ENABLE);USART_ITConfig函数的功能是使能或者失能指定的USART串口中断。USART_IT_PE 奇偶错误中断 USART_IT_TXE 发送中断 USART_IT_TC 传输完成中断 USART_IT_RXNE 接收中断 USART
2016-10-08 20:37:00
17906
1
原创 STM32USART串口库函数介绍之USART_Init
本文将介绍USART串口的库函数,总的来说有以下函数体:※ USART_Init函数:初始化所使用的串口外设※ USART_Cmd函数:使能或者失能USART外设※ USART_ITConfig函数:使能或者失能指定的USART中断※ USART_SendData函数:通过外设USARTx发送单个数据※ USART_ReceiveData函数:返回USARTx最近解释接收到的数
2016-10-08 20:04:46
18894
原创 STM32之USART的基本知识点
USART又称为通用同步异步收发器,是利用分数比特率发生器提供宽范围的比特率选择。STM32F10x系列的芯片都提供了功能比较强大的USART串口,基本上的串口功能都可以通过硬件来实现。USART具有以下比较典型的特征:1.全双工异步通信;2.单线半双工通信;3.发送方为同步传输提供时钟;4.可配置的使用DMA的多缓冲器通信—在SRAM中利用集中式DMA缓冲接受/发送;5.
2016-10-08 15:52:37
5335
原创 STM32实例之I/O控制中的按键实验
键盘是嵌入式重要的设备之一。通过对键盘的操作可以给系统以指令,使得系统知道做什么操作,进行什么处理。就本质而言,系统对键盘的处理就是对I/O口电平的读取和处理。在本实例中,使用OpenM3V开发板,他通过7个按键分别控制7个I/O口,这里我们通过LED等的点亮与熄灭来表征是否有按键的动作。在做设计之前我们必须理清楚软件结构和硬件结构(这是做设计必须理清楚的重要点)。从硬件电路来说,当有按键
2016-10-08 14:29:36
13332
3
原创 STM32实例之LED灯闪烁控制以及相关注意事项
在本实例中,主要是为了实现LED灯的闪烁。首先分析LED的驱动方式,本实验中使用的是OpenM3V,内置8个LED均采用灌流方式驱动(低电平亮)。如果想要实现其闪烁,则需要给相应端口持续不断的高低交替电平。在软件结构设计中,加入使用LED8,则需要在PD7口不断的输出高电平和低电平。首先需要初始化系统时钟,然后再开始配置PD7作为输出使用,打开外设时钟最后控制PD7输出持续的高低轮流。开始
2016-10-07 22:20:42
29745
1
原创 STM32中关于位运算的基本介绍与注意点
在位运算中的基本运算符号是(>).>>表示右移,同样是一个双目运算符:temp左移一次相当于该数乘2,右移一次相当于该数除2,以此类推。TIPS:在实际的编程中,最好是多使用括号,会使得程序易读。在按位与(&)运算中,当对其数据为1时,该结果为1,否则为0。按与运算的目的是为了对指定位清0.也可以是用于检查某一位的状态值,或者是保留某位的状态而其他位清0.在按位或(|)运算
2016-10-07 21:13:05
9397
原创 关于STM32中的GPIO位设置的相关纪要与总结
1.在对GPIOx_ODR的个别位进行编程时,软件不需要禁止中断。2.GPIO具有锁定机制。主要是在一些关键引脚上为了防止程序跑掉而引起不必要的后果。3.GPIO的库函数问题,GPIO_SetBits:置所选端口的一个或者多个位高;GPIO_ResetBits:相应的设置相应的一个或者多个位高;GPIO_Init:设置A,B,C,D,E端口的任一个I/O的输入输出配置信
2016-10-07 16:18:30
8493
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人