单片机/ARM 开发
文章平均质量分 78
xiaoleiacm
asdfghjkl;
展开
-
stm32 直接读写寄存器代码风格总结
简单的总结了一下stm32 寄存器读写代码风格,以备后用:根据memory mapping 直接写寄存器代码风格:#define GPIOA_BASE1 (uint32_t)0x40010800#define GPIOA_CRH ((uint32_t*)(GPIOA_BASE1+0x04))转换为指针之后,直接读写:*GPIOA_CRH=0x000004B0; /原创 2015-05-06 11:59:16 · 5573 阅读 · 0 评论 -
获得本机的用户名及IP地址函数
#include #include #include #include #include #include //Windows Sockets函数定义#include using namespace std;bool InitSocket(); //初始化Windows Sockets动态连接库#pragma comment(lib, "Ws2_32.lib")void G原创 2014-07-26 11:52:56 · 1237 阅读 · 0 评论 -
嵌入式系统 课后实验总结
#include "stm32f10x.h" // pb5 led1 // pD6 led2 // pD3 led3void rcc_configration(){ SystemInit(); // 初始化系统硬件信息等}void led_configration(){ GPIO_InitTypeDef GPIO_InitStructure; // 结原创 2014-06-16 15:59:55 · 3075 阅读 · 0 评论 -
stm32 利用Flash进行储存数据
由于Flash具有擦写速度快,读取方便等优点,在工程项目中,常常开辟一块儿数据来存放系统原创 2014-07-25 11:42:25 · 9480 阅读 · 1 评论 -
stm32 利用备份寄存器保存实时时钟数据
在工程中,会出现许多复位或者掉电的情况原创 2014-07-25 11:26:55 · 4930 阅读 · 0 评论 -
stm32 对于串口数据流的处理
串口编程问题: 最近在写串口程序时,遇到了原创 2014-07-07 11:49:04 · 5785 阅读 · 0 评论 -
printf 的串口输入重定向
在调试的时候,可以使用Printf重定向来进行原创 2014-07-22 20:29:05 · 3834 阅读 · 0 评论 -
可用的客户端程序(暂存)
#include #include #include #pragma comment(lib,"ws2_32.lib")using namespace std;void main(){ //加载套接字库 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = M原创 2014-05-27 19:06:07 · 718 阅读 · 0 评论 -
指针在嵌入式里的技巧
今天回头搞了搞指针,以前数组甲天下的感觉原创 2014-05-23 20:41:50 · 1061 阅读 · 0 评论 -
三极管电阻计算以及旁路电路的选择
此时我们假设Vb=3.2V 经过R1de原创 2014-08-04 19:15:41 · 4852 阅读 · 1 评论 -
函数指针和回调函数
函数指针的一般用法,网上一大堆,这里说的是在结构体中定义函数指针,并原创 2014-08-02 21:42:14 · 791 阅读 · 0 评论 -
经典4电阻差动放大器
经典的四电阻差动放大器似乎很简单,但其在电路中的性能不佳。本文从实际生产设计出发,讨论了分立式电阻、滤波、交流共模抑制和高噪声增益的不足之处。大学里的电子学课程说明了理想运算放大器的应用,包括反相和同相放大器,然后将它们进行组合,构建差动放大器。图1所示的经典四电阻差动放大器非常有用,教科书和讲座40多年来一直在介绍该器件。图1:经典差动放大器该放大器的传递函数为:若R1转载 2014-08-31 10:43:37 · 3277 阅读 · 1 评论 -
SPI 相位 极性
【SPI基础知识简介】设备与设备之间通过某种硬件接口通讯,目前存在很多种接口,SPI接口是其中的一种。SPI中分Master主设备和Slave从设备,数据发送都是由Master控制。一个master可以接一个或多个slave。常见用法是一个Master接一个slave,只需要4根线:SCLK:Serial Clock,(串行)时钟MISO:Maste原创 2015-04-14 15:55:59 · 1186 阅读 · 0 评论 -
旁路电容和去耦电容详解
在电子电路中,去耦电容和旁路电容都是起到抗干扰的作用,电容所处的位置不同,称呼就不一样了。对于同一个电路来说,旁路(bypass)电容是把输入信号中的高频噪声作为滤除对象,把前级携带的高频杂波滤除,而去耦(decoupling)电容也称退耦电容,是把输出信号的干扰作为滤除对象。去耦电容用在放大电路中不需要交流的地方,用来消除自激,使放大器稳定工作。从电路来说,总是存在驱动的源和被驱动的负载转载 2014-12-25 12:54:02 · 1073 阅读 · 0 评论 -
STM32 DMA 串口透传
一直没有好好的捣鼓过DMA,在调BLE项目的时候,遇到了DMA串口传输的问题,伤心流涕甚长时间!!! DMA 网上的解释一大堆,简单总结一下:DMA 处理过程全部是由硬件来实现的,速度很快!DMA 在专门的DMA控制下,实现高速外设与主存储期之间自动成批量的数据交换。通常有两种交换方式:1 独占总线方式 2 周期挪用方式DMA 传送过程 DMA 预处理原创 2015-02-02 22:42:37 · 7343 阅读 · 0 评论 -
去耦电容的选择以及反电势干扰的抑制
在新编MSC-51单片机应用设计书上截下的一段下载地址:http://pan.baidu.com/share/link?shareid=3940212018&uk=740600965原创 2014-12-25 12:41:28 · 1159 阅读 · 0 评论 -
stm32 使用printf 输出当前信息
stm32 在调试时可以使用printf 通过串口输出当前信息,方法简单粗暴~ 之间貌似写过类似的博客,这回从新进行一下总结~ #include "stdio.h"#include "stm32f10x_usart.h"#include "stm32f10x.h"int fputc(int ch, FILE *f){ USART_SendData(USART1,原创 2015-02-02 12:52:52 · 2772 阅读 · 1 评论 -
stm32 之定时器回眸一笑
stm32 定时器配置 定时1秒原创 2015-01-30 15:59:30 · 1574 阅读 · 0 评论 -
stm32 外接晶振问题
由于STM32F10x库官方采用的是默认的外接8MHz晶振,因此造成很多用户也采用了8MHz的晶振,但是,8MHz的晶振不是必须的,其他频点的晶振也是可行的,只需要在库中做相应的修改就行。 在论坛上看到很多用户反映,使用外接12MHz的晶振,会造成很多的问题,如USART的波特率不正确,Systick走时不准等问题,在无论是在实际调试还是在软件模拟中都会发现这个情况,其实,这不能怪ST官原创 2014-11-21 16:42:59 · 4815 阅读 · 0 评论 -
msp430 看门狗寄存器定义方式
__no_init volatile union{ unsigned short WDTCTL; /* Watchdog Timer Control */ struct { unsigned short WDTIS0 : 1; /* */ unsigned short WDTIS1 : 1; /* */原创 2014-10-16 18:41:51 · 1123 阅读 · 0 评论 -
由 serverAdd.sin_addr.s_addr 引发的思考
这两天尽忙着看winsock了,玩过它的人都知道正确的填写IP地址是很重要的一个环节。所谓填写IP地址就是指在SOCKADDR_IN结构体中填写IP地址:struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr;转载 2014-05-14 21:20:51 · 2310 阅读 · 1 评论 -
LED 流水灯闪烁
/****************************************************************************#include "stm32f10x.h"GPIO_InitTypeDef GPIO_InitStructure;#define LED1_ON GPIO_SetBits(GPIOB, GPIO_Pin_5); #define L原创 2014-04-07 19:18:52 · 1621 阅读 · 0 评论 -
数码管的显示
根据数码管的驱动方式的不同,可以分为静态式和动态式两类。① 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),原创 2013-11-07 18:42:41 · 2253 阅读 · 0 评论 -
I2C 总线 ——E2PROM
IIC总线工作原理 I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。 起始和终止信号 :SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。数据传送格式(1)字节传送与应答原创 2013-11-21 11:33:03 · 1385 阅读 · 0 评论 -
C与汇编(转)
在嵌入式系统开发中,目前使用的主要编程语言是C 和汇编,虽然C++已经有相应的编译器,但是现在使用还是比较少的。 在稍大规模的嵌入式程序设计中,大部分的代码都是用C来编写的,主要是因为C语言具有较强的结构性,便于人的理解,并且具有大量的库支持。但对于一写硬件上的操作,很多地方还是要用到汇编语言,例如硬件系统的初始化中的CPU 状态的设定,中断的使能,主频的设定,RAM控制参数转载 2013-11-19 21:25:59 · 1397 阅读 · 0 评论 -
2013年11月1日单片机C语言总结
实在是觉得51单片机被C语言这么一具体化,简单的无语啊~~~~~~在c语言当中的一些函数变量可直接移植,并且还可以用系统函数.............................#include#define F(a,b) (a)+(b)*(a)/256+(b)void main(){ unsigned char i,j,k; i=40; j=30;原创 2013-11-01 17:18:42 · 1132 阅读 · 0 评论 -
关于8051单片机I/O端口的双向与准双向的分析
关于8051单片机I/O端口双向与准双向的分析C51的说明书上说:”Because Ports 1, 2, and 3 have fixed internal pullups, they are sometimes called quasi-bidirectional ports. When configured as inputs, they pull high原创 2013-10-31 20:52:34 · 9684 阅读 · 1 评论 -
关于DATA,XDATA,BDATA,IDATA,CODE的总结
关于DATA,XDATA,BDATA,IDATA,CODE的总结程序存储区程序CODE 存储区是只读的他不能写程序存储区可能在8051CPU内或者在外部或者都有,根据8051派生的硬件决定最多可以有64K字节的程序存储区程序代码包括所有的函数和库保存在程序存储区,常数变量也是8051可执行程序只保存在程序存储区在Cx51编译器中可用code存储区转载 2013-11-01 11:15:58 · 2146 阅读 · 0 评论 -
特殊功能寄存器SFR
特殊功能寄存器sfr sfr也是一种扩充数据类型,点用一个内存单元,值域为0~255。 利用它可以访问51单片机内部的所有特殊功能寄存器。(sfr 是定义8 位的特殊功能寄存器而sfr16 则是用来定义16 位特殊功能寄存器) (1) sbit 位变量名=位地址 sbit P1_1 = Ox91;这样是把位的绝对地址赋给位变量.同sfr原创 2013-10-31 18:01:09 · 9701 阅读 · 2 评论 -
上拉电阻的作用(转
上拉电阻的作用(转) 上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用,下拉同理.上拉是对器件注入电流,下拉是输出电流,弱强只是上拉电阻的阻值不同,没有什么严格区分,对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。一.应用1、当TTL电路驱动COM转载 2013-10-30 20:50:32 · 2329 阅读 · 0 评论 -
内置E2PROM,静态数码管记忆显示
C89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上~ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给原创 2013-11-23 11:43:28 · 1532 阅读 · 0 评论 -
串口之计数器溢出率计算和串口的波特率之间的关系&& TMOD TCON SCON (转)
TMOD:定时器/计数器T0¦T1的方式寄存器 方式寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址的寄存器,字节地址为89H。 其格式为: TMOD结构图 ================================================================================= 其中低原创 2013-11-05 19:45:09 · 6266 阅读 · 0 评论 -
4*4矩阵键盘
今天学习了一下4*4矩阵键盘,原理:四行线,四列线,实时进行扫描先把四列线全部置1,对于行线先对第一行置0(选通),若列线有低电位,则可以确定在哪一列,逐行扫描这样就同时确定了按在了具体的哪一行哪一列。uchar code table[]={ //数码管显示0-F的编码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0原创 2013-11-10 21:17:26 · 4363 阅读 · 0 评论 -
中断控制LED灯亮灭
中断小结:(用独立键盘控制)#include "stm32f10x.h"#include "stm32f10x_exti.h"#include "stm32f10x_rcc.h"#include "misc.h"unsigned char _it0=0,num=0;void RCC_Configuration(void); //时钟使能void RCC_Configuration(原创 2014-04-07 17:44:38 · 9737 阅读 · 2 评论 -
STM32_APIO 复用(转)
最近在学习STM32,在BZ上一篇关于的串口通信文章里有这么一段代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE);当初是参考开发的里子写的一直对GPIOD或上“RCC_APB2Periph_AFIO”这句话的意思没搞懂,通过这几天在网上查找资料和看手册,终于高清楚了,不敢独享,希望能原创 2014-04-07 15:41:53 · 1842 阅读 · 0 评论 -
keil 4.22 MDK 建工程时出现的重定义错误
在更新官方的STM32 官方库3.5版本的函数库后,建立工程时会出现诸多重定义错误,例如:D:\Keil2\ARM\INC\ST\STM32F10x\stm32f10x_type.h(23): error: #256: invalid redeclaration of type name "s32" (declared at line 487 of ".\CM3\stm32f10x.h")原创 2014-04-02 11:52:37 · 9573 阅读 · 0 评论 -
keil 工程头文件包涵及结构体重定义问题
最近在写一个太阳能电池控制板的项目,原创 2014-05-02 17:49:57 · 6710 阅读 · 0 评论 -
HT1622 驱动程
#include #define uchar unsigned char#define uint unsigned intsbit LCD_CS = P1^0; //端口还没按原理图改过来,应为p0^0~p0^3;sbit LCD_RD = P1^1;sbit LCD_WR = P1^2;sbit LCD_DATA = P1^3;//////////////////////////原创 2014-03-23 20:54:21 · 6747 阅读 · 0 评论 -
结构体字节对齐
终于把太阳能框架改完了,期间真是原创 2014-05-01 21:19:14 · 821 阅读 · 0 评论 -
STM32 定时器浅谈_1
看了整整一周的定时器,整理一下一周来学习笔记.原创 2014-04-14 16:01:54 · 2664 阅读 · 0 评论