您的连接不是私密连接 攻击者可能会试图从 github.com 窃取您的信息(例如:密码、通讯内容或信用卡信息)。了解详情 进入C:\Windows\System32\drivers\etc\ 文件夹,找到hosts文件,右键编辑 hosts,粘贴“192.30.255.112 github.com” 保存即可
Zephyr--添加自己的库(文件) 创建自己的文件在zephyr/drivers路径下创建my_add文件夹mkdir my_add在my_add文件夹下创建:# CMakeLists.txt# Kconfig# test.c在CmakeLists.txt中添加:zephyr_sources(test.c)#添加我自己的.c文件。例子比较简单,Kconfig文件就不用写什么配置了。编写简单的test.c文件,我这里就写了一个简单的函数:#include "drivers/test.h"i
设备树学习 设备树简介设备树是用来描述硬件的分层数据结构,Zephyr操作系统使用设备树来描述器支持的板子上可以使用的硬件设备,以及硬件的初始配置。分为两种类型的设备输入文件:设备树源和设备树绑定。其中设备树源文件包含设备树本身,绑定描述了它的内容,包括数据类型。构建系统使用设备树源和绑定来生成C头文件,这个生成头文件的内容被include\devicetree.h API抽象,可以用它获取设备树的信息。...
Kconfig语法学习 1、调用其它Kconfig顶层Kconfig需要调用其他路径下的Kconfigsource "xxx/Kconfig"eg: source "arch/Kconfig" /*也就是引用arch文件下的Kconfig*/ source "boards/Kconfig" source "soc/Kconfig" source "arch/Kconfig" source "kernel/Kconfig" source "dts/Kconfig" sou
Zephyr--CMake Error:某个例程的CMakeLists.txt与根目录下的CMakeLists.txt不匹配,使用不同的源目录重新运行cmake 文章标题具体问题是:解决办法,删除根目录下编译生成的build文件,再重新编译即可
Zephyr编译问题 west build -b nucleo_g071rb samples/basic/blinky编译zephyr给的例子时出现如下错误:应该是之间编译过了,再次编译应该清除一下: west build -b nucleo_g071rb samples/basic/blinky -p
Ubuntu 18.4 安装ST-Link V2 1、安装相关库和工具sudo apt-get install git make cmake libusb-1.0-0-dev sudo apt-get install gcc build-essential2、下载ST-Link进入跟目录,并创建文件夹mkdir stm32进入该文件夹目录cd stm32clone ST-Linkgit clone https://github.com/stlink-org/stlink 进入stlink路径下cd s
Zephyr--开发环境搭建(Ubuntu 18.04.6) 1、Ubuntu虚拟机创建略2、搭建开发环境1)更新Ubuntusudo apt updatesudo apt upgrade2)安装依赖项包括CMake、Python、Devicetree compiler①下载、检查并执行 Kitware 存档脚本wget https://apt.kitware.com/kitware-archive.shsudo bash kitware-archive.sh②用于apt安装的依赖项:sudo apt insta
Linux开发过程中遇到的问题集合 ~持续更新 1、未添加MODULE_LICENSE(“GPL”)/括号中的内容写错2、通过在串口终端输入ls proc/device-tree 命令查看设备是否成功加入,有的时候在vscode会cp失败,可通过Ubuntu终端重新cp。3、VMware 全屏设置/*主要就是安装VMware Tools*///第一步更新下载源:sudo apt-get update//第二步安装:sudo apt-get install open-vm-tools//不需要通过设置修改分辨率4、.
Linux内核中bytestream kfifo学习 定义kfifo结构体#define __STRUCT_KFIFO_COMMON(datatype, recsize, ptrtype) \ union { \ struct __kfifo kfifo; \ datatype *type; \ const datatype *const_type; \ char (*rectype)[recsize]; \ ptrtype *ptr; \ ptrtype const *ptr_const; \ }#define .
STM32CubeMX系列(6)--SD与FatFs 用STM32CubeMX生成FatFs之前需要打开SDIO,否则无法使用FatFs下面配置FatFs然后直接生成工程即可。FatFs常用的API// 打开或者创建一个文件 FRESULT f_open ( FIL* fp, /* Pointer to the blank file object */ const TCHAR* path, /* Pointer to the file name */ BYTE mode /* Access mode and file open m
NO ST-LINK detected/ST-LINK USB communication error 解决办法①下载并安装STLINK驱动②更新STLINK固件③找到你的keil5安装目录>ARM>STLink>USBDriver目录下的stlink_winusb_uninstall.bat 点击执行(即先卸载),然后再执行stlink_winusb_install.bat(即重新安装)...
SWD烧录时 No target connected 1、原因①接线问题②开启了__HAL_AFIO_REMAP_SWJ_DISABLE();//也就是说关闭了SWD③使用STM32CubeMX配置时没有配置SWD2、对应解决办法①排查接线问题②注释掉__HAL_AFIO_REMAP_SWJ_DISABLE();长摁reset键,看是否会出现SWD,如果可以,那么长摁的同时然后点击烧录然后快速松开reset键(可以多试几次),只要成功了,以后就可以直接烧录了③配置SWD...
SD卡之FATFS库移植 方法一:官网库移植1) 官网下载Fatfs库http://elm-chan.org/fsw/ff/00index_e.html2) 将源文件添加到工程(该工程需要实现某存储器的读写等底层接口,比如SD卡或者FLASH)3) 修改FATFS相关函数接口主要包括diskio.c中的:① disk_status()//获取设备状态② disk_initialize()//初始化③ disk_read()//设备读④ disk_write()//设备写⑤ disk_ioctl()//设备属性接口
STM32CubeMX系列(5)--定时器实现PWM+DMA控制LED 在STM32CubeMX系列(4)–定时器实现PWM控制LED的基础上,实现用DMA+PWM的方式实现普通LED灯的呼吸灯效果,只需要再开启一下DMA通道即可:选择后,会自动开启中断:在main.c中定义数组:#define LEN 20uint16_t pwm_buf[LEN] = {0};在main函数中对上面的数组赋值for(int i=0;i<LEN;i++){ pwm_buf[i]= 30*(i+1); /* 设置不同的占空比 */}在while中调用HAL
STM32CubeMX系列(4)--定时器实现PWM控制LED 1.概念PWM:Pulse-width modulation,即脉宽调制。简单的来说就是控制一个信号周期内高/低电平持续的时间。脉宽:脉冲是指短时间内出现电压或电流的突然变化,脉宽就是脉冲宽度也就是脉冲持续时间,也就是高/低电平持续时间)。占空比:指的就是一个信号周期内,高电平所占时间的比例(严谨的说法应该是有效电平占比);脉冲:定时器通过计数器与输出比较值进行比较,实现高低电平的切换,下面借用正点原子的图片:以PWM模式2为例当CNT<CCRx的时候,IO输出低电平(逻辑0),反之输
零长(柔性)数组 #include "stdio.h"#include "string.h"#define NUM 11struct Test{ int len; char buf[0];};int main(void){ struct Test TEST; printf("%d\r",sizeof(TEST));//测试柔性数组内存占用情况 printf("%x\r",&TEST); printf("%x\r",TEST.buf);//测试柔性数组的首地址
STM32CubeMX系列(3)--定时器中断 演示使用TIM2通用定时器,以中断的方式实现0.5s翻转一次LED。1、创建工程2、添加代码首先开启定时器中断,生成的代码不会自动生成,因此需要手动在void MX_TIM2_Init(void)中添加/* TIM2 init function */void MX_TIM2_Init(void){ /* 部分省略... */ if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterC