- 博客(74)
- 资源 (30)
- 收藏
- 关注
原创 STM32F4XX使用SWO实现printf功能
ITM:Instrumentation Trace Macrocell,仪器跟踪宏单元。SWO:Serial Wire Output,串行线输出。##三 swo实现代码。
2024-01-04 15:53:54
554
转载 SD卡初始化及读写流程
SD卡调试关键点:1. 上电时要延时足够长的时间给SD卡一个准备过程,在我的程序里是5秒,根据不同的卡设置不同的延时时间。SD卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。2. SD卡发送复位命令CMD0后,要发送版本查询命令CMD8,返回状态一般分两种,若返回0x01表示此SD卡
2014-03-19 22:44:46
1232
转载 the connected emulator is a j-link clone
用SEGGER安装目录下的JLinkARM.dll替换掉MDK安装目录下的./ARM/Segger/JLinkARM.dll就可以了
2013-09-12 19:48:18
7563
2
转载 stm32 fsmc 功能讲解
LCD有如下控制线:CS:Chip Select 片选,低电平有效RS:Register Select 寄存器选择WR:Write 写信号,低电平有效RD:Read 读信号,低电平有效RESET:重启信号,低电平有效DB0-DB15:数据线假如这些线,全部用普通IO口控制。根据LCD控制芯片手册(大部分控制芯片时序差不多):如果情况如下:DB0-DB15的IO全
2013-07-11 21:53:32
1044
转载 DDB和DIB 是什么?区别?
BMP图像文件是Windows 3.X 所采用的图像文件格式,几乎所有Windows 上的应用软件都支持这种图像文件,其中最常见的就是Windows本身所附的绘图软件(Paint-Brush),所以欲在Windows上探讨图像的文件格式,势必要对BMP有一个完整而全面的认识。 BMP图像分为两类,DDB和DIB,DDB(device-dependent b
2013-07-05 14:16:05
2474
转载 键盘消抖
首先将按键值保存两次,以检验按键值的变化。当按键值变后将计数器置0,否则继续加1。当计数器值等于fffff的时候,说明按键是正常按下的,接着保存两次,检测值的变化。若相应位有变化,则将相应的led控制取反。(好像新的代码中键值只检验了一次,不过找不到新代码了。)`timescale 1ns / 1ps/////////////////////////////////////////////
2013-04-27 07:48:03
1027
转载 脉冲边沿检测(Verilog)
在很多时候都要对输入脉冲进行边沿检测,如PS/2时序,ps2_data数据在ps2_clk时钟下降沿接收。 边沿检测Verilog程序代码: 布线布局后仿真波形如下图:点击看原图 可以注意到其中的移位寄存器用了非阻塞赋值(ps2_clk_r0ps2_clk_r1ps2_clk_r2 如果用阻塞赋值的话,综合的时候会把其中两个寄存器去点,用
2013-04-26 21:12:04
3845
1
转载 比较好的三段式状态机verilog范例
状态机采用VerilogHDL语言编码,建议分为三个always段完成。三段式描述方法虽然代码结构复杂了一些,但是换来的优势是使FSM做到了同步寄存器输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更利于时序路径分组,一般来说在FPGA/CPLD等可编程逻辑器件上的综合与布局布线效果更佳。示列如下://第一个进程,同步时序always模块,格式化描述次态寄存器迁移到现态寄存器
2013-04-25 15:36:49
2205
转载 硬件描述语言Verilog设计经验总结
一、硬件描述语言Verilog粗略地看Verilog与C语言有许多相似之处。分号用于结束每个语句,注释符也是相同的(/* ... */和// 都是熟悉的),运算符“==”也用来测试相等性。Verilog的if..then..else语法与C语言的也非常相似,只是Verilog用关键字 begin和end代替了C的大括号。事实上,关键字begin和end对于单语句块来说是可有可无的,就与C中的大
2013-04-25 15:34:30
7548
转载 关于三极管的"放大"作用
最初,十几年前的初中,首次接触三极管就对“三极管有放大作用”中的“放大”二字吸引,第一反映就是很想为什么能放大?怎么放大的?具体过程怎么样?从那时候起开始翻查各式各样资料,想把“放大”原理弄清楚。为此,学了半导体制造,半导体物理,固态物理,电路设计等数门课程,结果如下: 1,所有资料要么从具体电路,用电流表量出三极电流大小,比较后给出结论,根据那电流关系得出“三极管能放大”的结论。显然这个
2013-04-25 15:33:27
1560
1
转载 Verilog HDL语法提纲
1.模块的端口定义module 模块名(口1,口2,口3,口4, ………); 2.(数据类型及其常量、变量)数字整数: 位宽>进制>数字>这是一种全面的描述方式。1) 二进制整数(b或B)2) 十进制整数(d或D)3) 十六进制整数(h或H)4) 八进制整数(o或O)x和z值 :在数字电路中,x代表不定值,z代表高
2013-04-25 07:59:55
888
转载 新型的按键扫描程序,仅三行程序
不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。同时,这里面用到了一些分层的思想,在单片机当中也是相当有用的,也是本文的另外一个重点。对于老鸟,我建议直接看那两个表达式,然后自己想想就会懂的了,也不需要听我后面的自吹自擂
2013-03-21 21:16:04
926
转载 NTC(负温度)热敏电阻.阻值的计算方式
现在低成本测温方案中NTC热敏电阻用的比较多,一般采用查表的方法获取温度值,这就牵涉到温度和阻值的对应关系。如果你从我们生产厂家购买NTC热敏电阻可以向厂家所要温度阻值对照表,但是对于普通爱好者来说大多是从零售商那里购买的热敏电阻,而零售商一般是没有或没法向您提供准确的阻值和温度对照表的。以下是NTC热敏电阻.阻值的计算方式 希望可以给您带来帮助:通常的方法是用标准温度计,环境温度每上升一
2013-03-19 09:34:25
23204
1
转载 FPGA与CPLD
FPGA1 FPGA [Field Programmable Gate Array],基于查找表LUT(Look-Up-Table, LUT)结构:LUT本质是一个RAM(主流FPGA都基于SRAM工艺的LUT结构),用开发软件实现将可能的结果写入RAM,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。2 基于SRAM工艺的FPGA需要外接一
2013-02-05 20:48:05
1624
转载 呼吸机氧电池的工作原理及性能检测
1 氧电池工作原理氧电池,这里特指医用氧电池,又称氧气传感器(Oxygen sensor)、氧浓度传感器、氧气单元、氧探头、氧电极等,采用电化学原理,主要功能是用于测量混合气体的氧浓度。测量范围:0%~100%氧浓度,在恒定工作压力和恒定温度条件下,氧电池产生的电压值与氧浓度成正比关系。每个氧电池的输出电压在整个寿命期内基本上是稳定的。当测量到的氧浓度值与设置的氧浓度值偏差较大时,机器将发出报
2012-12-04 09:02:23
10823
转载 火线,零线,地线各自颜色和作用(转载)
火线又称相线,它与零线共同组成供电回路。在低压电网中用三相四线制输送电力,其中有三根相线一根零线。为了保证用电安全,在用户使用区改为用三相五线制供电,这第五根线就是地线,它的一端是在用户区附近用金属导体深埋于地下,另一端与各用户的地线接点相连,起接地保护的作用。火线是带电的,地线和零线是不带的,家用两插孔的里有一根火线,一根零线,用电笔能测出带电来的是火线,不带电的是零线,三插孔的插座里才
2012-11-26 13:50:14
3230
转载 解读uCos中优先级判定表OSUnMapTbl原理(转载)
OSOSRdyTbl[0]的bit7-bit0对应于优先级7-0, OSOSRdyTbl[1]的bit7-bit0对应于优先级15-8, OSOSRdyTbl[2]的bit7-bit0对应于优先级23-16, OSOSRdyTbl[3]的bit7-bit0对应于优先级31-24, OSOSRdyTbl[4]的bit7-bit0对应于优先级39-32, OSOSRdyTbl[5]
2012-11-22 10:08:34
485
转载 磁盘分区类型标志表 (Windows系列)
我们的操作系统是靠磁盘分区信息表上的分区类型标志来识别每一个磁盘分区的类型,下面是常见的各种分区类型标志,其中红色和蓝色是最常用的Windows系列操作系统所使用的分区类型,分区类型标志位标志与分区实际格式不符也是常见磁盘的故障,在数据恢复业务中会占到1-2%的比例。磁盘分区类型标志00空,DOS或Windows不允许使用,视为非法
2012-10-24 13:04:51
2140
转载 软件生存周期各阶段活动定义浅释
首先讲一下软件生存周期的定义,即以需求为触发点,提出软件开发计划的那一刻开始直到软件在实际应用中完全报废为止可以认为是一个完整的软件生存周期,软件生存周期的提出是为了更好的管理、维护和升级软件。其中更大的意义在于管理软件开发的步骤和方法。它把整个的软件生存时间看作是一个整体,以时间的推移和软件开发的工作重心之间作为划分点,把软件开发和维护的工作细分为若干个相对独立的部份,从而更好的控制软件的开发进
2012-09-25 10:18:56
3059
转载 呼吸机的工作原理及其主要功能
呼吸机的功能呼吸机是一个肺通气装置(Lungventilator),因为它只能起到将气体送到肺内和排出肺外的作用,而并没有参与呼吸的全过程,它并不能代替肺的全部功能(指换气功能)。所以有人认为将其称之为通气机更为确切,我们所谈到的呼吸机的功能实际上是指它的通气功能。呼吸机的功能可分为几大类:主要功能、次要功能、特殊功能、辅助功能。(一)主要功能 (1)调节通气气压或通气容积:定压型呼吸机优
2012-09-24 15:22:21
4644
转载 PC串行接口串口定义
PC串行接口串口定义(db9)PC/AT 机上的串行口是 9 针公插座,引脚定义为:Pin Name Dir Description1 CD 2 RXD 3 TXD --> Transmit Data4 DTR –> Data Terminal Ready5 GND —– System Ground6 DSR 7 RTS --> Request to
2012-09-11 11:37:58
1455
转载 折半查找法(C语言)
#include #define max 20int binary(int x,int list[],int n) /*从list[]中查找x*/{ int low,high,mid; low=0; high=n-1; while(low { mid=(low+high)/2;
2012-09-10 10:56:55
1367
转载 输入阻抗和输出阻抗小结
输入阻抗和输出阻抗小结 一、输入阻抗 输入阻抗是指一个电路输入端的等效阻抗.在输入端上加上一个电压源U,测量输入端的电流I,则输入阻抗Rin就是U/I.你可以把输入端想象成一个电阻的两端,这个电阻的阻值,就是输入阻抗.输入阻抗跟一个普通的电抗元件没什么两样,它反映了对电流阻碍作用的大小.对于电压驱动的电路,输入阻抗越大,则对电压源的负载就越轻,因而就越容
2012-09-10 08:55:56
597
转载 电阻式触摸屏的基本结构和驱动原理
四线电阻式触摸屏 四线电阻式触摸屏的结构如图1,在玻璃或丙烯酸基板上覆盖有两层透平,均匀导电的ITO层,分别做为X电极和Y电极,它们之间由均匀排列的透明格点分开绝缘。其中下层的ITO与玻璃基板附着,上层的ITO附着在PET薄膜上。X电极和Y电极的正负端由“导电条”(图中黑色条形部分)分别从两端引出,且X电极和Y电极导电条的位置相互垂直。引出端X-,X+,Y-,Y+一共四条线,这就是四线电阻
2012-09-03 21:28:35
1287
转载 生成直线的Bresenham算法
从上面介绍的DDA算法可以看到,由于在循环中涉及实型数据的加减运算,因此直线的生成速度较慢。 在生成直线的算法中,Bresenham算法是最有效的算法之一。Bresenham算法是一种基于误差判别式来生成直线的方法。 一、直线Bresenham算法描述: 它也是采用递推步进的办法,令每次最大变化方向的坐标步进一个象素,同时另一个方向的坐标依据误差判别式的符号来决定是否也要步进
2012-08-30 13:36:40
5333
转载 生成直线的DDA算法
数值微分法即DDA法(Digital Differential Analyzer),是一种基于直线的微分方程来生成直线的方法。 一、直线DDA算法描述: 设(x1,y1)和(x2,y2)分别为所求直线的起点和终点坐标,由直线的微分方程得= m =直线的斜率(2-1) 可通过计算由x方向的增量△x引起y的改变来生成直线:xi+
2012-08-30 13:33:33
2108
1
转载 STM32的“外部中断”和“事件”区别和理解
事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;而中断是不能触发这些操作的,所以要把事件与中断区分开。 你要好好地看看相应的模块框图,参考下图:当你只要产生中断而不想触发其它操作时,就可以用事件屏蔽寄存器实现。在STM32中,中断与事件不是等价的,一个中断肯定对应一个
2012-08-24 11:27:34
6295
1
转载 STM32 Printf函数实现方法
在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。下面就说一下使用printf需要做哪些配置。有两种配置方法:一、对工程属性进行配置,详细步骤如下1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。2、在main文件中重
2012-08-23 14:15:36
1208
转载 STM32固件库V3.3.0的CMSIS文件简析
STM32的V3.3.0库,内有CMSIS的文件夹为arm Cortex微控制器软件接口标准,现在将我实际工作中的作一个简要分析: 1.选择启动文件:根据自己所用的芯片的型号,选择正确的启动文件。这个根据数据手册上的划分。例如STM32F101VBT6,就选择startup_stm32f10x_md.s,在这个文件里,首选要定义自已的堆和栈的大小,这个根据自已的需要确定。文件中已经
2012-08-23 08:39:17
1124
转载 STM32中用到的Cortex-M3寄存器说明
在STM32中用到了Cortex-M3定义的三组寄存器,有关这三组寄存器的说明不在STM32的技术手册中,需要参考ARM公司发布的Cortex-M3 Technical Reference Manual (r2p0)。 在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下: 1)、NVIC寄存器组 S
2012-08-22 21:40:48
1443
转载 STM32(Cortex-M3)中NVIC(嵌套向量中断控制)的理解
STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。1. 何为占先式优先级(pre-emption priority)高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。2. 何为副优先级(subpriority)在占先式优先级相
2012-08-21 20:00:25
5108
转载 STM32中断向量嵌套NVIC理解
STM32中断向量嵌套NVIC理解一,中断优先级:STM32(Cortex-M3)中的优先级概念STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级。具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套
2012-08-21 19:58:14
4347
1
转载 STM32 BIT_BAND 位带别名区使用入门
STM32 BIT_BAND 位带别名区使用入门支持了位带操作(bit_band),有两个区中实现了位带。其中一个是SRAM 区的最低1MB 范围,第二个则是片内外设 // 区的最低1MB 范围。这两个区中的地址除了可以像普通的RAM 一样使用外,它们还都有自 // 己的“位带别名区”,位带别名区把每个比特膨胀成一个32 位的字 // // 每个比特膨
2012-08-21 13:38:46
2199
转载 有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (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
2012-08-21 10:20:23
1592
转载 单片机I/O口推挽输出与开漏输出的区别
单片机I/O口推挽输出与开漏输出的区别(转) 推挽输出:可以输出高,低电平,连接数字器件;开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.我们先来说说集电极开路输出的结构。集
2012-08-21 10:10:43
1524
转载 linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟
linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节的内容说不上是驱动,只是写个代码让触摸屏能够工作,随便介绍一下时钟子系统(我不知道这样叫合不合适),仅次而已。xxxxxxxxxx
2012-08-20 19:15:45
644
转载 linux设备驱动归纳总结(十二):简单的数码相框
linux设备驱动归纳总结(十二):简单的数码相框xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx其实代码很简单,实现lcd驱动,使lcd能够显示图片,当按下按键后切换图片。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2012-08-20 19:14:42
1677
转载 linux设备驱动归纳总结(十一):简单的看门狗驱动
linux设备驱动归纳总结(十一):写个简单的看门狗驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx设备驱动的归纳已经差不多了,趁着知识点还没有遗忘,写点代码巩固一下,来个简单的看门狗驱动——静态平台类的杂设备看门狗驱动,有定时和重启两个基本功
2012-08-20 19:13:48
1338
转载 linux设备驱动归纳总结(十):1.udev&misc
linux设备驱动归纳总结(十):1.udev&miscxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx不知不觉我的总结已经写得七七八八了,这一章节只是补充一下两个知识点:动态创建设备节点和杂设备类的注册。xxxxxxxxxxxxxxxxx
2012-08-20 19:12:45
605
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人