单片机
文章平均质量分 53
3
Nina_小哥
学习记录
展开
-
ZYNQ——PS端IIC设备接口使用
前言: 在zynq系列中的FPGA,都会自带两个iic设备,我们直接调用其接口函数即可运用。使用xilinx官方提供的库函数,开发起来方便快捷。一:配置vavido 创建block design,勾选iic设备,可以看到iic的引脚可以进行这种分配,对照原理图,勾选对应的引脚即可。二:sdk开发创建好工程后,在sdk中对iic设备进行初始化,和对iic设备的读写操作。首先是对iic设备进行初始化,初始化iic设备的基地址,设备id,iic时钟频率等信息。u32 XpsIic_Initia原创 2020-09-09 11:07:03 · 5155 阅读 · 2 评论 -
ZYNQ——PS端之XGpioPs_SetOutputEnablePin()函数详解
使能控制输出函数void XGpioPs_SetOutputEnablePin(XGpioPs *InstancePtr, u32 Pin, u32 OpEnable)参数1:XGpioPs 结构体指针参数2:需要打开或者关闭使能的pin号码参数3:写1 打开使能;写0 关闭使能返回值:无void XGpioPs_SetOutputEnablePin(XGpioPs *InstancePtr, u32 Pin, u32 OpEnable){ u8 Bank; u8 PinN原创 2020-07-21 10:23:20 · 1216 阅读 · 0 评论 -
zynq7000系列PS端GPIO初始化函数XGpioPs_LookupConfig()和XGpioPs_CfgInitialize()详解
前言 xilinx公司在设计这款芯片时就同步编写了ps端的函数库,我们在对zynq这款芯片进行开发,直接调用库函数就可以了。不过比较难过的是,官方虽然编写了函数驱动库,但并没有出版相应的类似于函数指导之类的文档,需要开发者自己去理解这个函数用法,但官方还是有相应的历程,我们可以学历历程来基本掌握这些函数的用法,但并不是很详细,也没有说明文档,需要结合datasheet和其他的文档进行综合理解分析。首先gpio有两个重要的数据结构:XGpioPs 和 XGpioPs_Configtype原创 2020-07-20 14:54:50 · 4811 阅读 · 5 评论 -
ZYNQ——PS端之XGpioPs_WritePin()函数详解
写pin值函数,输出0还是1void XGpioPs_WritePin(XGpioPs *InstancePtr, u32 Pin, u32 Data) 参数1:XGpioPs结构体指针 参数2:待写pin 参数3:输出高电平为1,输出低电平为0 返回值:无void XGpioPs_WritePin(XGpioPs *InstancePtr, u32 Pin, u32 Data){ u32 RegOffset; u32 Value; u8 Bank; u8 PinNumber;原创 2020-07-21 11:09:58 · 5135 阅读 · 0 评论 -
如何在xilinx sdk中捕获调试某段代码需要运行的时间
程序代码:#include "xtime_l.h" 包含这个头文件int main() { XTime tEnd, tbegin; u32 tused; XTime_GetTime(&tbegin); *******test_code***************** *******test_code***************** *******test_code***************** XTime_GetTime(&tEnd原创 2020-10-15 09:42:32 · 3032 阅读 · 1 评论 -
ZYNQ——PS端之XGpioPs_SetDirectionPin()函数详解
void XGpioPs_SetDirectionPin(XGpioPs *InstancePtr, u32 Pin, u32 Direction)参数1:XGpioPs结构体指针参数2:Pin是要写入数据的Pin的号码,zynq中为0-117(包括MIO和EMIO)参数3:指定引脚设置的方向,输入方向为:0,输出方向为:1。返回值:无void XGpioPs_SetDirectionPin(XGpioPs *InstancePtr, u32 Pin, u32 Direction){ u8 B原创 2020-07-20 16:02:42 · 2432 阅读 · 1 评论 -
stm32使用定时器输出PWM
简介: STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出!这里我们仅利用 TIM3的 CH2 产生一路 PWM 输出。1:定时器产生PWM原理在PWM输出模式下,除了CNT(计数器当前值)、ARR(自动重装载值)之外,还多了一个值CCRx(捕获/比较寄存器值)。当CN原创 2021-07-02 14:02:03 · 2581 阅读 · 4 评论 -
如何编写MDK中Configration wizard配置文件
前言: 在写程序时经常会进行一些配置,比如开启关闭某些功能、修改一些常量等,会反复去修改配置文件。实际上MKD可以将其变为配置界面,这样在修改时更加直观、方便。只需要根据configuration wizard的格式来编写我们的配置文件即可。类似于上图这样,可以直接修改后面的值或者勾选使能匡,就能实现对函数中的参数或者宏定义进行修改,这样做的目的就是比较直观,简单明了,省的去看代码里面的逻辑关系。 MDK在编译时 是怎们知道这是一个配置文件的呢?就需要用到文件的格式,开头和结尾。// <&原创 2020-08-24 17:18:27 · 571 阅读 · 0 评论 -
MDK中使用第三方编辑器工具notepad++编辑代码
准备1:安装mdk2:安装好notepad++操作步骤1:打开KEIL,点击【Tools】→【Customize Tools Menu】;2:弹出一个窗口,新建一个名字,然后把外部编辑器的安装目录中.exe路径导入进去,点击ok这里我之前已经配置好了两个编辑器,大家配置自己喜欢的编辑器即可,原理都一样;使用打开你的KEIL工程之后,选择你要编辑的文件;点击【Tools】,你就会看见有你刚才起名的那个编辑器的名字,点它就对了;然后会用第三方编辑器打开这个文件,修改…,完事点 保存;关原创 2020-07-17 17:04:37 · 777 阅读 · 0 评论 -
如何在keil中让代码自动对齐
准备:有时候我们在Mdk中打开别人的代码,会出现格式乱码的现象,看起来就很不方便。如果像vs里面一样可以有格式化插件就好了,在mdk中是提供了这样的一个窗口的,我们可以外部安装插件Astyle来整理我们得代码。Astyle官网下载地址:http://astyle.sourceforge.net/在keil中使用步骤:1:点击 工具栏Tool / Customize Tools Menu,新建一个文件Current File,然后添加格式化工具的存放地址,一般我们是放在mdk的安装目录下。最后还需要添原创 2020-07-20 11:21:22 · 15710 阅读 · 6 评论 -
Keil 工程在编译完之后,提示信息Program Size: Code=48008 RO-data=5660 RW-data=604 ZI-data=2124
内存分布:一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。Keil 工程在编译完之后,会有相应的程序所占用的空间提示信息,如下所示:linking…Program Size: Code=48008 RO-data=5660 RW-data=604 ZI-data=2124After Build - User command #1: fromelf --bin.\bu原创 2021-06-23 11:07:39 · 765 阅读 · 0 评论 -
stm32cubemx创建的工程,jlink调试时找不到jlink,需要按住复位键才能找到并下载代码的原因?
在cubemx配置过程中,sys配置时需要选择,我这里选择的是:trace Asy…这个。默认的是No debug原创 2021-01-30 16:33:55 · 1007 阅读 · 2 评论 -
第一次基于stm32cubemx hal库的spi通信调试心得
spi通信失败问题点: 1: cs引脚配置成普通pin_out,软件控制拉高拉低 2: spi读取数据的个数和发送数据的个数是相同的,就是你只有发送出去一个数据,才能回来一个数据,发送n个数据,才能回来n个数据 3:spi读取地址的读写位在最高位,读取时,需要或0x80...原创 2021-01-20 09:05:18 · 1735 阅读 · 1 评论 -
stm32之定时器Timer4测量代码运行时间
前言: stm32里面有8个定时器,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在APB1总线上。其中TIM1&TIM8称为高级控制定时器(advanced control timer).他们所在的APB2总线也比APB1总线要好。APB2可以工作在72MHz下,而APB1最大是36MHz。计算定时器的周期:void TIM4_Int_Init(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; RC原创 2020-09-09 11:57:22 · 4082 阅读 · 1 评论 -
stm32之adc多路采集+dma传输
STM32 ADC简介: 12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。对于小容量、中容量和大容量产品.ADC主要特征: ● 12位分辨率 ● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断原创 2020-08-05 17:14:58 · 22380 阅读 · 22 评论