自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LL库实现定时器输出4路不同频率pwm(输出比较方法)

最近有用到定时器的输出功能,可以通过这个功能使1个定时器输出4路不同频率的pwm,这里做一下记录,防止以后自己忘记了。下面直接看初始化:这里我是使用定时器1通道1,也就是PA8引脚有了以上操作之后我们生成代码后还必须要手动添加使能代码: LL_TIM_CC_EnableChannel(TIM1,LL_TIM_CHANNEL_CH1); LL_TIM_EnableAllOutputs(TIM1); LL_TIM_EnableIT_CC1(TIM1); LL_TIM_EnableCo

2020-11-13 11:38:11 2562

转载 STM8S库文件读取IO输入引脚函数GPIO_ReadInputPin有问题

/** * @brief Reads the specified GPIO input data pin. * @param GPIOx : Select the GPIO peripheral number (x = A to I). * @param GPIO_Pin : Specifies the pin number. * @retval BitStatus : GPIO input pin status. */BitStatus GPIO_ReadInputPin(G.

2020-11-06 19:41:35 2164

转载 AD布线 选定器件 框定到指定区域的快捷键

经常会忘记这个快捷键,以至于要用到的时候都要想老半天,特此记录一下。原理图框定指定模块后,按T+S后跳到PCB自动回选中相关器件,然后按T+O+L划定一个区域后器件自动跳到该区域。转载自https://www.jianshu.com/p/567d240b54bd...

2020-10-16 14:47:17 6860

原创 在u-boot中启动linux内核

1,从emmc启动 检查emmc中是否有系统镜像文件和设备树文件mmc dev 1 //切换到emmc设备fatls mmc 1:1 //查看设备1分区1fatload mmc 1:1 80800000 zimage //拷贝镜像文件fatload mmc 1:1 83000000 imx6ull-14x14-emmc-4.3-800x480-c.dtb //拷贝设备树文件bootz 80800000 - 83000000 //启动内核2,...

2020-09-18 23:56:03 949

转载 Linux-在uboot中更新uboot(包含SD卡和EMMC)

一、准备工作1.在Ubuntu系统中进入u-boot的文件根目录,编译出一个新的ARM环境下的u-boot.imx文件,这里笔者使用自己编写的脚本mx6ull_fire_emmc.sh文件进行编译,脚本的内容如下图所示:操作步骤如下图所示:2.编译成功后uboot的根目录会生成一些新的文件,从中找到u-boot.imx文件并拷贝到tftp文件目录中,如下图所示:  3.进入ftfp文件目录找到拷贝的u-boot.imx文件赋予最高权限,如下图所示: 4.使用一块...

2020-09-18 23:19:48 4251 5

原创 LL库实现硬件I2C读取磁编码器角度

今天偶然想到用硬件I2c来测试一下看看速度怎么样,听过ST已经将I2C的bug改掉了,下面就是测试代码。首先初始化,没什么看的。下面就是读取函数了,我是使用了一个磁编码器来读取角度。//返回值:0,错误uint8_t AS5600_ReadByte(uint8_t ReadAddr){ uint8_t Recev = 0; while(LL_I2C_IsActiveFlag_BUSY(I2C1) == SET); //判断总线是否空闲 LL_I2C_HandleTransfer

2020-08-21 17:58:40 2555 1

原创 linux下 execvp: xxx.xxx: 权限不够

例如:make: execvp: /home/xiang/GitHub/ESP8266_RTOS_SDK/components/partition_table/parttool.py: 权限不够解决方法:chmod +x /home/xiang/GitHub/ESP8266_RTOS_SDK/components/partition_table/parttool.py

2020-07-02 16:46:39 7497

原创 使用cJSON创建json字符串数据

最近在研究8266,用来采集数据上传到云服务器,其中数据传输需要用到json,第一次弄也是是比较费劲,还好不是很难,大致看一下也就明白了,下面写出来给自己做一个笔记。首先我们要想到,json里面,最小的结构就是一个对象,对象里面有键,和键值,这个和java有点像。举个例子:{“key”:“value”}这就是一个对象了,一个json的最小单位,键就是这个对象的名称,值就是这个对象的值,(好像有点啰嗦),值可以是数组,也可以是是对象,是可以嵌套的。下面举例如何创建json字符串:stat

2020-05-25 23:28:39 1225

原创 ESP8266_RTOS_SDK (ESP-IDF )中添加自定义文件夹和文件

首先,首先我们知道,在main目录下RTOS已经给我们配置好了,所以我们从例子程序里面赋值出来就可以直接编译使用。我们如果需要添加自己的文件和文件夹的话就需要我们自己指定路劲了。我的做法是:先建立一个自己的文件夹,这个文件夹里面用来存放C文件,然后在这个文件夹里面再建一个include文件夹用来存放头文件,目录结构看下图:文件夹建好了之后就可以添加文件了,记住不要忘记了添加comp...

2020-04-19 14:09:57 4173 1

原创 LL库实现ADC多通道DMA读取

首先依旧使用STcubeMX配置一下工程我这里使用的是ADC1的多个通道,具体看下面配置图,比较简单,因为我使用了DMA,配置好ADC之后还需要配置一下DMA。1,ADC配置2,DMA配置,需要配置通道以及方向,是外设到内存还是内存到内存,以及缓存区数据宽度。3,配置好以上后,我们还需要手动添加外设地址以及内存地址等下面看代码: LL_DMA_SetDataLen...

2020-04-16 13:07:50 6660 5

原创 LL库实现定时器输入捕获

首先使用STcubeMX配置一下工程我这里使用的是定时器4的通道1同时也打开了更新中断,100ms中断一次有了以上配置我们还需要手动打开中断使能等操作,LL库没有为我们打开。 LL_TIM_ClearFlag_CC1(TIM4); LL_TIM_ClearFlag_UPDATE(TIM4); LL_TIM_EnableIT_CC1(TIM4); LL_TIM_Enabl...

2020-03-25 12:43:19 2833 4

原创 FreeRTOS学习----动态创建任务

第一步:创建任务句柄:使用 TaskHandle_t 结构体TaskHandle_t AppTaskCreate_Handle = NULL; //用户任务生成句柄第二步:编写任务函数:void AppTaskCreate(void* pvParameters){ while(1) //任务必须阻塞,不然会报错 { }}...

2020-03-24 17:53:04 1471

原创 在活动中使用Menu(安卓Studio)

在网上也搜索到了好些的教程但是敲进去都会报错,所以自己就写了一个首先我们要在res目录下见一个Menu文件夹,然后在文件夹下建立一个菜单文件,在这里我命名为main,然后在里面添加如下代码 <?xml version =“1.0”encoding =“utf-8”?><menu xmlns:android =“http://schemas.andr...

2020-03-24 11:34:21 374 1

原创 mos管的应用

1. 三个极怎么判定G极(gate)—栅极,不用说比较好认S极(source)—源极,不论是P沟道还是N沟道,两根线相交的就是D极(drain)—漏极,不论是P沟道还是N沟道,是单独引线的那边2. N沟道还是P沟道箭头指向G极的是N沟道箭头背向G极的是P沟道3. 寄生二极管方向如何判定不论N沟道还是P沟道MOS管,中间衬底箭头方向和寄生二极管的箭头方向总是一致的:要么都由S指向D...

2020-03-24 11:33:39 3327

原创 ZigBee--cc2530定时器的使用

1,首先我们还是先看一下定时器基础的寄存器2,当我们要使用定时器的时候, 一,首先需要设置定时器的分频系数,这个可以通过控制寄存器来实现, 二,然后需要设置自动重装载值,也就是定时器记多少个数溢出进入中断程序。...

2020-03-24 11:32:59 1027

原创 LL库实现STM32使用定时器主从模式输出指定数量脉冲

这里我使用的是定时器1发送脉冲,定时器4记录脉冲个数,所以定时器1工作在主模式,定时器4工作在从模式。定时器1主要是设置输出的触发事件,这里我们选择OC1REF这里需要注意一下,配置的时候定时器的arr不能设置为0,不然无法输出脉冲。先上定时器1配置图然后就是定时器4了因为使用的是从模式,所以在这里我们选择“外部时钟模式1”还要选触发源,这里我们选择“ITR0”,...

2020-03-21 00:32:57 3544 2

转载 STM32使用MCO引脚输出系统时钟

/* * 初始化MCO引脚PA8 * 在F1系列中MCO引脚只有一个,即PA8,在F4系列中,MCO引脚会有两个 */void MCO_GPIO_Config(void){    GPIO_InitTypeDef GPIO_InitStructure;    // 开启GPIOA的时钟    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ...

2018-12-13 12:51:11 10261 4

原创 ZigBee调用协议栈函数触发系统事件实例

1,最简单的例子,调用此函数设置任务的事件标志。uint8 osal_set_event( uint8 task_id, uint16 event_flag )    参数:接收事件的ID                      我这里传入的是通用应用程序的ID,可以在GenericApp_Init()函数里面找到               什么样的事件              ...

2018-09-19 17:30:59 1823

原创 ZigBee切换系统高频时钟+串口的使用

1,ZigBee切换系统高频时钟步骤    一,让2个高频时钟源启振    二,等待目标时钟源震荡稳定    三,延时63us以上    四,设置输出分频(一般不分频)    五,选中目标高频时钟源作为系统主时钟    六,确认一下当前工作的系统时钟是不是所选的高频时钟知道这些之后我们就来认识一下涉及到的寄存器好了,有了以上寄存器我们就可以配置时钟了...

2018-09-14 14:19:53 1178

转载 STM32 HAL库学习 常使用的几种延时方式

1   自带的hal_delay 函数    毫秒级延迟void HAL_Delay(__IO uint32_t Delay){ uint32_t tickstart = HAL_GetTick(); //获取tick值(毫秒) uint32_t wait = Delay; /* Add a period to guarantee minimum wait */ if ...

2018-09-11 09:17:43 16577 2

原创 ZigBee外部中断控制

1,首先我们来认识一下几个寄存器  IEN0,IEN1,IEN2               //各外设或端口中断使能寄存器  P0IEN、P1IEN,P2IEN       //通用I/O 中断使能寄存器  PICTL                                   //端口中断控制为位,配置上升沿触发中断还是下降沿触发中断  EA                 ...

2018-09-03 16:45:21 2841

原创 ZigBee控制GPIO端口输入输出

1,我们要知道三个关键寄存器  PxSEL        //决定IO口功能,                          1表示片上外设,0表示普通IO口  PxDIR        //决定输入还是输出,                    1表示输出,       0表示输入  PxINP        //决定是上下拉模式还是三态,      1表示三态,       0表...

2018-09-03 10:36:20 2782

原创 将一个十六位数分成两个八位数

高8位:(data >>8)&0xFF 低8位: (data&0xFF)

2018-08-25 15:03:02 7549

原创 STM32使用定时器产生PWM波

/* ----------------   PWM信号 周期 占空比的计算--------------- */// ARR :自动重装载寄存器的值// CLK_cnt:计数器的时钟等于 Fck_int / (psc+1) = 72M/(psc+1)// PWM 信号的周期 T = ARR * (1/CLK_cnt) = ARR*(PSC+1) / 72M// 占空比P=CCR/(ARR+1...

2018-08-12 20:19:40 12389

转载 在AD中单独设置电源网络的线宽

1、创建类执行Design+Classes或者快捷键D+C;选中Net Classes,点击右键:选择-Add Class;然后再选中Add Class,点击右键-Rename Class,更名名字为:PWR(POWER的缩写)选中Net Classes中刚刚建好的类PWR,按住CTRL键,在Non-Members中选择VDD,D+8V0,D+5V0,VBAT,TVDD,BAT.....(...

2018-08-04 11:51:52 15997 2

原创 STM32的八种输入输出模式

(1) GPIO_Mode_AIN         模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD         下拉输入 (4)GPIO_Mode_IPU         上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP         推挽输出 (7)GPIO_Mo...

2018-06-23 19:16:07 2134

原创 STM32启动文件选择

- startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices- startup_stm32f10x_ld.s: for STM32 Low density devices- startup_stm32f10x_md_vl.s: for STM32 Medium density Value line devices- st...

2018-06-23 18:26:37 1359

转载 三极管的使用方法,放大,截止,饱和

1.首先认识清楚三极管的管脚                       参考资料万用表区分mos管引脚 2.知道管脚我们也就知道NPN和PNP了,箭头朝内 PNP,导通电压顺箭头过,电压导通,电流控制。那箭头朝外的自然就是 NPN 了!NPN管工作在放大区的时候:集电极电压>基极电压>发射极电压也就是:Vc>Vb>Ve ...

2018-06-04 00:42:29 70637 8

转载 (转)Android 中右上角菜单创建(Menu)

1、 为什么要用到Menu呢? 手机的屏幕空间非常有限,因此充分的利用屏幕空间在手机界面设计中就显得非常重要了。如果你的活动中有大量的菜单需要显示,这个时候界面设计就会比较尴尬,因为仅这些菜单就可能占用屏幕将近三分之一的空间,这该怎么办呢?不用担心,Android给我们提供了一种方式,可以让菜单都能得到展示的同时,还能不占用任何屏幕空间。2、 效果图如下:3、代码:(1) 首先在 res 目录下新...

2018-06-02 20:39:52 2462 1

原创 软件模拟IIC

最近做平衡车的时候用到了IIC总线的知识,在这里就总结一下吧!1,IIC总线的连接IIC传输数据的时候只用其实只需要两根线,一根是“SCL”为时钟线,一根是“SDA”为数据线我们来看一下器件是怎么连接在IIC总线上的!可以看到,SDA和SCL都接了上拉电阻,在总线空闲的时候,SDA和SCL都应该为高电平,当总线上的任何一个器件输出低电平,那总线都将变为低电平。我们记住只要记住一条:IIC总线在进行...

2018-05-28 10:24:41 5835 7

原创 android studio3.0使用Intent在活动间穿梭

Intent大致可以分为两种形式:显示Intent和隐式IntentIntent有多个构造函数的重载,其中一个是Intent(Context packageContext,Class<?>cls)    这个构造函数接收两个参数,第一个Context要求提供一个启动活动的上下文第二个Class则是启动的活动目标,通过这个构造函数我们就可以看出Intent的意图了!    Activit...

2018-05-12 18:53:56 682

原创 在活动中使用Toast

首先我们要定义一个触发点,比如我们在程序里面有一个按钮,那就在我们按下按钮的时候弹出一个Toast,所以我们需要在OnCreate()方法中添加如下代码:class FirstActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate...

2018-05-12 11:46:15 669

转载 (转)关于“:app:preDebugAndroidTestBuild'”

在新建布局文件的时候,页面显示:design editor is unavailable until a successful build(设计编辑器不可用,直到成功创建。)细看下面还有一行错误:Error:Execution failed for task ':app:preDebugAndroidTestBuild'.(':app:preDebugAndroidTestBuild'任务执行失败...

2018-05-12 11:20:42 1878

转载 (转)Kotlin 跟 findViewById 的类型推导冲突问题

1 描述从 version 26 开始,com.android.support:appcompat-v7 中的 findViewById 方法的返回值从 View 改成了 <T extends View>。对于开发者来说,喜大普奔的好处当然是以后终于可以不用在每个 finViewById 方法前面加个丑陋的类型强转了。 但是福兮祸兮,好事的背后也难免会有一些不如意的地方。比如,如果你在...

2018-05-11 22:34:31 884

原创 stm32USART使用(库函数)

1,定义GPIO端口、串口USART、中断NVIC初始化结构体。    2,打开相关外设时钟,串口1的时钟和引脚都在APB2总线上所以可以直接|操作,如下3,给GPIO结构体成员赋值,设置引脚功能,此处用的是USART1,Tx是PA9,Rx是PA10,我们要设置PA9为复用推挽输出,PA10为浮空输入。4,初始化GPIO端口之后我们就要配置中断分组和串口中断优先级,中断优先级分组只用设置一次。5,...

2018-04-11 12:47:28 3234

原创 使用STM32GPIO端口点亮LED灯(库函数)

1,先定义GPIO端口结构体                                         GPIO_InitTypeDef LED_GPIOA_InitStruct;2,使用GPIO端口指定要使用的结构体                        LED_GPIOA_InitStruct.GPIO_Pin = GPIO_Pin_2; //指定第2引脚3,同上设置输出或...

2018-02-27 16:33:09 7197

原创 URL URI URN之间的关系和区别

1,URL2,URN3,URI

2017-05-19 10:55:41 713

原创 HTML基础标签的作用

1,在body标签里面body 中样式的设计如下bgcolor=“”#ffffff“”表示body的背景色      text=“”#ffff“”表示body里面文字的颜色link=“”#00ff00“”表示连接的颜色alink 表示链接被激活时候显示的颜色vlink  表示链接访问完毕时候的颜色backg

2017-05-19 10:04:07 1298

原创 frameset框架的用法

1.frameset的作用主要用来包含其他的HTML页面,在一个HTML页面里显示多个HTML2.创建frameset3.属性cols----按列分割窗口rows----按行分割窗口基本的注意事项 - 有用的提示:假如一个框架有可见边框,用户可以拖动边框来改变它的大小。为了避免这种情况发生,可以在 标签中加入

2017-04-12 17:25:24 8102

原创 数据库更新表中已存在数据的方法

很多时候老是记不住,所以今天就写出来了,都是基础东西!1. 更新表中所有行2.更新表中特定行 ,更新时候一定不要省略WHERE子句,否则会更新所有行。更新update语句分为三部分,格式如下: 1  更新的表 2  列名和新的值 3  确定更新哪些行的过滤条件单个列:UPDATE   Custo

2017-04-07 14:44:18 1142

步进电机S型曲线,SPTA加速算法.7z

本文件包含步进电机S型曲线加速算法和SPTA加速算法,对初学很有帮助

2019-10-30

MiniBalanceV5.0卡尔曼滤波.zip

闭环控制,pid,平衡算法,卡尔曼滤波等控制算法,都有中文注释,很适合学习

2019-10-22

空空如也

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

TA关注的人

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