历史上的今天
返回首页

历史上的今天

今天是:2024年09月18日(星期三)

正在发生

2019年09月18日 | 第20章 USART—串口通讯—零死角玩转STM32-F429系列

2019-09-18 来源:eefocus

本章参考资料:《STM32F4xx中文参考手册》USART章节。


学习本章时,配合《STM32F4xx中文参考手册》USART章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。


特别说明,本书内容是以STM32F42xxx系列控制器资源讲解。


20.1 串口通讯协议简介

串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。


在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。


下面我们分别对串口通讯协议的物理层及协议层进行讲解。


20.1.1 物理层

串口通讯的物理层有很多标准及变种,我们主要讲解RS-232标准,RS-232标准主要规定了信号的用途、通讯接口以及信号的电平标准。


使用RS-232标准的串口设备间常见的通讯结构见图 201。

图 201 串口通讯结构图


在上面的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL校准"的电平信号,才能实现通讯。


1.    电平标准    

根据通讯使用的电平标准不同,串口通讯可分为TTL标准及RS-232标准,见表 201。


表 201 TTL电平标准与RS232电平标准

image.png?imageView2/2/w/550

我们知道常见的电子电路中常使用TTL的电平标准,理想状态下,使用5V表示二进制逻辑1,使用0V表示逻辑0;而为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V表示逻辑1,+15V表示逻辑0。使用RS232与TTL电平校准表示同一个信号时的对比见图 202。

图 202 RS-232与TTL电平标准下表示同一个信号


因为控制器一般使用TTL电平标准,所以常常会使用MA3232芯片对TTL及RS-232电平的信号进行互相转换。


2.    RS-232信号线

在最初的应用中,RS-232串口标准常用于计算机、路由与调制调解器(MODEN,俗称"猫")之间的通讯 ,在这种通讯系统中,设备被分为数据终端设备DTE(计算机、路由)和数据通讯设备DCE(调制调解器)。我们以这种通讯模型讲解它们的信号线连接方式及各个信号线的作用。


在旧式的台式计算机中一般会有RS-232标准的COM口(也称DB9接口),见图 203。

图 203 电脑主板上的COM口及串口线


其中接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头。在计算机中一般引出公头接口,而在调制调解器设备中引出的一般为母头,使用上图中的串口线即可把它与计算机连接起来。通讯时,串口线中传输的信号就是使用前面讲解的RS-232标准调制的。


在这种应用场合下,DB9接口中的公头及母头的各个引脚的标准信号线接法见图 204及表 202。

图 204 DB9标准的公头及母头接法


表 202 DB9信号线说明(公头,为方便理解,可把DTE理解为计算机,DCE理解为调制调解器)

image.png?imageView2/2/w/550

上表中的是计算机端的DB9公头标准接法,由于两个通讯设备之间的收发信号(RXD与TXD)应交叉相连,所以调制调解器端的DB9母头的收发信号接法一般与公头的相反,两个设备之间连接时,只要使用"直通型"的串口线连接起来即可,见图 205。

图 205 计算机与调制调解器的信号线连接


串口线中的RTS、CTS、DSR、DTR及DCD信号,使用逻辑 1表示信号有效,逻辑0表示信号无效。例如,当计算机端控制DTR信号线表示为逻辑1时,它是为了告知远端的调制调解器,本机已准备好接收数据,0则表示还没准备就绪。


在目前的其它工业控制使用的串口通讯中,一般只使用RXD、TXD以及GND三条信号线,直接传输数据信号。而RTS、CTS、DSR、DTR及DCD信号都被裁剪掉了,如果您在前面被这些信号弄得晕头转向,那就直接忽略它们吧。


20.1.2 协议层

串口通讯的数据包由发送设备通过自身的TXD接口传输到接收设备的RXD接口。在串口通讯的协议层中,规定了数据包的内容,它由启始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据,其组成见图 206。

图 206 串口数据包的基本组成


1.    波特率

本章中主要讲解的是串口异步通讯,异步通讯中由于没有时钟信号(如前面讲解的DB9接口中是没有时钟信号的),所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码,图 206中用虚线分开的每一格就是代表一个码元。常见的波特率为4800、9600、115200等。


2.    通讯的起始和停止信号

串口通讯的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑0的数据位表示,而数据包的停止信号可由0.5、1、1.5或2个逻辑1的数据位表示,只要双方约定一致即可。


3.    有效数据

在数据包的起始位之后紧接着的就是要传输的主体数据内容,也称为有效数据,有效数据的长度常被约定为5、6、7或8位长。


4.    数据校验

在有效数据之后,有一个可选的数据校验位。由于数据通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。校验方法有奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)以及无校验(noparity),它们介绍如下:


    奇校验要求有效数据和校验位中"1"的个数为奇数,比如一个8位长的有效数据为:01101001,此时总共有4个"1",为达到奇校验效果,校验位为"1",最后传输的数据将是8位的有效数据加上1位的校验位总共9位。


    偶校验与奇校验要求刚好相反,要求帧数据和校验位中"1"的个数为偶数,比如数据帧:11001010,此时数据帧"1"的个数为4个,所以偶校验位为"0"。


    0校验是不管有效数据中的内容是什么,校验位总为"0",1校验是校验位总为"1"。


    在无校验的情况下,数据包中不包含校验位。


20.2 STM32的USART简介

STM32芯片具有多个USART外设用于串口通讯,它是 Universal Synchronous Asynchronous Receiver and Transmitter的缩写,即通用同步异步收发器可以灵活地与外部设备进行全双工数据交换。有别于USART,它还有具有UART外设(Universal Asynchronous Receiver and Transmitter),它是在USART基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是UART。


USART满足外部设备对工业标准NRZ异步串行数据格式的要求,并且使用了小数波特率发生器,可以提供多种波特率,使得它的应用更加广泛。USART支持同步单向通信和半双工单线通信;还支持局域互连网络LIN、智能卡(SmartCard)协议与lrDA(红外线数据协会) SIR ENDEC规范。


USART支持使用DMA,可实现高速数据通信,有关DMA具体应用将在DMA章节作具体讲解。


USART在STM32应用最多莫过于"打印"程序信息,一般在硬件设计时都会预留一个USART通信接口连接电脑,用于在调试程序是可以把一些调试信息"打印"在电脑端的串口调试助手工具上,从而了解程序运行是否正确、指出运行出错位置等等。


STM32的USART输出的是TTL电平信号,若需要RS-232标准的信号可使用MAX3232芯片进行转换。


20.3 USART功能框图

STM32的USART功能框图包含了USART最核心内容,掌握了功能框图,对USART就有一个整体的把握,在编程时就思路就非常清晰,见图 207。

图 207 USART功能框图


1.    ①功能引脚

TX:发送数据输出引脚。


RX:接收数据输入引脚。


SW_RX:数据接收引脚,只用于单线和智能卡模式,属于内部引脚,没有具体外部引脚。


nRTS:请求以发送(Request To Send),n表示低电平有效。如果使能RTS流控制,当USART接收器准备好接收新数据时就会将nRTS变成低电平;当接收寄存器已满时,nRTS将被设置为高电平。该引脚只适用于硬件流控制。


nCTS:清除以发送(Clear To Send),n表示低电平有效。如果使能CTS流控制,发送器在发送下一帧数据之前会检测nCTS引脚,如果为低电平,表示可以发送数据,如果为高电平则在发送完当前数据帧之后停止发送。该引脚只适用于硬件流控制。


SCLK:发送器时钟输出引脚。这个引脚仅适用于同步模式。


USART引脚在STM32F429IGT6芯片具体发布见表 203。


表 203 STM32F429IGT6芯片的USART引脚

image.png?imageView2/2/w/550

STM32F42xxx系统控制器有四个USART和四个UART,其中USART1和USART6的时钟来源于APB2总线时钟,其最大频率为90MHz,其他六个的时钟来源于APB1总线时钟,其最大频率为45MHz。


UART只是异步传输功能,所以没有SCLK、nCTS和nRTS功能引脚。


观察表 203可发现很多USART的功能引脚有多个引脚可选,这非常方便硬件设计,只要在程序编程时软件绑定引脚即可。


2.    ②数据寄存器

USART数据寄存器(USART_DR)只有低9位有效,并且第9位数据是否有效要取决于USART控制寄存器1(USART_CR1)的M位设置,当M位为0时表示8位数据字长,当M位为1表示9位数据字长,我们一般使用8位数据字长。


USART_DR包含了已发送的数据或者接收到的数据。USART_DR实际是包含了两个寄存器,一个专门用于发送的可写TDR,一个专门用于接收的可读RDR。当进行发送操作时,往USART_DR写入数据会自动存储在TDR内;当进行读取操作时,向USART_DR读取数据会自动提取RDR数据。


TDR和RDR都是介于系统总线和移位寄存器之间。串行通信是一个位一个位传输的,发送时把TDR内容转移到发送移位寄存器,然后把移位寄存器数据每一位发送出去,接收时把接收到的每一位顺序保存在接收移位寄存器内然后才转移到RDR。


USART支持DMA传输,可以实现高速数据传输,具体DMA使用将在DMA章节讲解。


3.    ③控制器

USART有专门控制发送的发送器、控制接收的接收器,还有唤醒单元、中断控制等等。使用USART之前需要向USART_CR1寄存器的UE位置1使能USART。发送或者接收数据字长可选8位或9位,由USART_CR1的M位控制。


发送器

当USART_CR1寄存器的发送使能位TE置1时,启动数据发送,发送移位寄存器的数据会在TX引脚输出,如果是同步模式SCLK也输出时钟信号。


一个字符帧发送需要三个部分:起始位+数据帧+停止位。起始位是一个位周期的低电平,位周期就是每一位占用的时间;数据帧就是我们要发送的8位或9位数据,数据是从最低位开始传输的;停止位是一定时间周期的高电平。


停止位时间长短是可以通过USART控制寄存器2(USART_CR2)的STOP[1:0]位控制,可选0.5个、1个、1.5个和2个停止位。默认使用1个停止位。2个停止位适用于正常USART模式、单线模式和调制解调器模式。0.5个和1.5个停止位用于智能卡模式。


当选择8位字长,使用1个停止位时,具体发送字符时序图见图 208。

图 208 字符发送时序图


当发送使能位TE置1之后,发送器开始会先发送一个空闲帧(一个数据帧长度的高电平),接下来就可以往USART_DR寄存器写入要发送的数据。在写入最后一个数据后,需要等待USART状态寄存器(USART_SR)的TC位为1,表示数据传输完成,如果USART_CR1寄存器的TCIE位置1,将产生中断。


在发送数据时,编程的时候有几个比较重要的标志位我们来总结下。

image.png?imageView2/2/w/550

接收器

如果将USART_CR1寄存器的RE位置1,使能USART接收,使得接收器在RX线开始搜索起始位。在确定到起始位后就根据RX线电平状态把数据存放在接收移位寄存器内。接收完成后就把接收移位寄存器数据移到RDR内,并把USART_SR寄存器的RXNE位置1,同时如果USART_CR2寄存器的RXNEIE置1的话可以产生中断。


在接收数据时,编程的时候有几个比较重要的标志位我们来总结下。

image.png?imageView2/2/w/550

为得到一个信号真实情况,需要用一个比这个信号频率高的采样信号去检测,称为过采样,这个采样信号的频率大小决定最后得到源信号准确度,一般频率越高得到的准确度越高,但为了得到越高频率采样信号越也困难,运算和功耗等等也会增加,所以一般选择合适就好。


接收器可配置为不同过采样技术,以实现从噪声中提取有效的数据。USART_CR1寄存器的OVER8位用来选择不同的采样采样方法,如果OVER8位设置为1采用8倍过采样,即用8个采样信号采样一位数据;如果OVER8位设置为0采用16倍过采样,即用16个采样信号采样一位数据。


USART的起始位检测需要用到特定序列。如果在RX线识别到该特定序列就认为是检测到了起始位。起始位检测对使用16倍或8倍过采样的序列都是一样的。该特定序列为:1110X0X0X0000,其中X表示电平任意,1或0皆可。


8倍过采样速度更快,最高速度可达fPCLK/8,fPCLK为USART时钟,采样过程见图 209。使用第4、5、6次脉冲的值决定该位的电平状态。


图 209 8倍过采样过程


16倍过采样速度虽然没有8倍过采样那么快,但得到的数据更加精准,其最大速度为fPCLK/16,采样过程见图 2010。使用第8、9、10次脉冲的值决定该位的电平状态。


图 2010 16倍过采样过程


4.    ④小数波特率生成

波特率指数据信号对载波的调制速率,它用单位时间内载波调制状态改变次数来表示,单位为波特。比特率指单位时间内传输的比特数,单位bit/s(bps)。对于USART波特率与比特率相等,以后不区分这两个概念。波特率越大,传输速率越快。


USART的发送器和接收器使用相同的波特率。计算公式如下:


公式 201 波特率计算


其中,fPLCK为USART时钟,参考表 203;OVER8为USART_CR1寄存器的OVER8位对应的值,USARTDIV是一个存放在波特率寄存器(USART_BRR)的一个无符号定点数。其中DIV_Mantissa[11:0]位定义USARTDIV的整数部分,DIV_Fraction[3:0]位定义USARTDIV的小数部分,DIV_Fraction[3]位只有在OVER8位为0时有效,否则必须清零。


例如,如果OVER8=0,DIV_Mantissa=24且DIV_Fraction=10,此时USART_BRR值为0x18A;那么USARTDIV的小数位10/16=0.625;整数位24,最终USARTDIV的值为24.625。


如果OVER8=0并且知道USARTDIV值为27.68,那么DIV_Fraction=16*0.68=10.88,最接近的正整数为11,所以DIV_Fraction[3:0]为0xB;DIV_Mantissa=整数(27.68)=27,即位0x1B。


如果OVER8=1情况类似,只是把计算用到的权值由16改为8。


波特率的常用值有2400、9600、19200、115200。下面以实例讲解如何设定寄存器值得到波特率的值。


由表 203可知USART1和USART6使用APB2总线时钟,最高可达90MHz,其他USART的最高频率为45MHz。我们选取USART1作为实例讲解,即fPLCK=90MHz。


当我们使用16倍过采样时即OVER8=0,为得到115200bps的波特率,此时:


 


解得USARTDIV=48.825125,可算得DIV_Fraction=0xD,DIV_Mantissa=0x30,即应该设置USART_BRR的值为0x30D。


在计算DIV_Fraction时经常出现小数情况,经过我们取舍得到整数,这样会导致最终输出的波特率较目标值略有偏差。下面我们从USART_BRR的值为0x30D开始计算得出实际输出的波特率大小。


由USART_BRR的值为0x30D,可得DIV_Fraction=13,DIV_Mantissa=48,所以USARTDIV=48+16*0.13=48.8125,所以实际波特率为:115237;这个值跟我们的目标波特率误差为0.03%,这么小的误差在正常通信的允许范围内。


8倍过采样时计算情况原理是一样的。


5.    校验控制

STM32F4xx系列控制器USART支持奇偶校验。当使用校验位时,串口传输的长度将是8位的数据帧加上1位的校验位总共9位,此时USART_CR1寄存器的M位需要设置为1,即9数据位。将USART_CR1寄存器的PCE位置1就可以启动奇偶校验控制,奇偶校验由硬件自动完成。启动了奇偶校验控制之后,在发送数据帧时会自动添加校验位,接收数据时自动验证校验位。接收数据时如果出现奇偶校验位验证失败,会见USART_SR寄存器的PE位置1,并可以产生奇偶校验中断。


使能了奇偶校验控制后,每个字符帧的格式将变成:起始位+数据帧+校验位+停止位。


6.    中断控制

USART有多个中断请求事件,具体见表 204。


表 204 USART中断请求

image.png?imageView2/2/w/550

20.4 USART初始化结构体详解

标准库函数对每个外设都建立了一个初始化结构体,比如USART_InitTypeDef,结构体成员用于设置外设工作参数,并由外设初始化配置函数,比如USART_Init()调用,这些设定参数将会设置外设相应的寄存器,达到配置外设工作环境的目的。


初始化结构体和初始化库函数配合使用是标准库精髓所在,理解了初始化结构体每个成员意义基本上就可以对该外设运用自如了。初始化结构体定义在stm32f4xx_usart.h文件中,初始化库函数定义在stm32f4xx_usart.c文件中,编程时我们可以结合这两个文件内注释使用。


USART初始化结构体

1 typedef struct {


2 uint32_t USART_BaudRate; // 波特率


3 uint16_t USART_WordLength; // 字长


4 uint16_t USART_StopBits; // 停止位


5 uint16_t USART_Parity; // 校验位


6 uint16_t USART_Mode; // USART模式


7 uint16_t USART_HardwareFlowControl; // 硬件流控制


8 } USART_InitTypeDef;


1)    USART_BaudRate:波特率设置。一般设置为2400、9600、19200、115200。标准库函数会根据设定值计算得到USARTDIV值,见公式 201,并设置USART_BRR寄存器值。


2)    USART_WordLength:数据帧字长,可选8位或9位。它设定USART_CR1寄存器的M位的值。如果没有使能奇偶校验控制,一般使用8数据位;如果使能了奇偶校验则一般设置为9数据位。


3)    USART_StopBits:停止位设置,可选0.5个、1个、1.5个和2个停止位,它设定USART_CR2寄存器的STOP[1:0]位的值,一般我们选择1个停止位。


4)    USART_Parity:奇偶校验控制选择,可选USART_Parity_No(无校验)、USART_Parity_Even(偶校验)以及USART_Parity_Odd(奇校验),它设定USART_CR1寄存器的PCE位和PS位的值。


5)    USART_Mode:USART模式选择,有USART_Mode_Rx和USART_Mode_Tx,允许使用逻辑或运算选择两个,它设定USART_CR1寄存器的RE位和TE位。


6)    USART_HardwareFlowControl:硬件流控制选择,只有在硬件流控制模式才有效,可选有⑴使能RTS、⑵使能CTS、⑶同时使能RTS和CTS、⑷不使能硬件流。


当使用同步模式时需要配置SCLK引脚输出脉冲的属性,标准库使用一个时钟初始化结构体USART_ClockInitTypeDef来设置,因此该结构体内容也只有在同步模式才需要设置。


USART时钟初始化结构体

1 typedef struct {


2 uint16_t USART_Clock; // 时钟使能控制


3 uint16_t USART_CPOL; // 时钟极性


4 uint16_t USART_CPHA; // 时钟相位


5 uint16_t USART_LastBit; // 最尾位时钟脉冲


6 } USART_ClockInitTypeDef;


1)    USART_Clock:同步模式下SCLK引脚上时钟输出使能控制,可选禁止时钟输出(USART_Clock_Disable)或开启时钟输出(USART_Clock_Enable);如果使用同步模式发送,一般都需要开启时钟。它设定USART_CR2寄存器的CLKEN位的值。


2)    USART_CPOL:同步模式下SCLK引脚上输出时钟极性设置,可设置在空闲时SCLK引脚为低电平(USART_CPOL_Low)或高电平(USART_CPOL_High)。它设定USART_CR2寄存器的CPOL位的值。


3)    USART_CPHA:同步模式下SCLK引脚上输出时钟相位设置,可设置在时钟第一个变化沿捕获数据(USART_CPHA_1Edge)或在时钟第二个变化沿捕获数据。它设定USART_CR2寄存器的CPHA位的值。USART_CPHA与USART_CPOL配合使用可以获得多种模式时钟关系。


4)    USART_LastBit:选择在发送最后一个数据位的时候时钟脉冲是否在SCLK引脚输出,可以是不输出脉冲(USART_LastBit_Disable)、输出脉冲(USART_LastBit_Enable)。它设定USART_CR2寄存器的LBCL位的值。


20.5 USART1接发通信实验

USART只需两根信号线即可完成双向通信,对硬件要求低,使得很多模块都预留USART接口来实现与其他模块或者控制器进行数据传输,比如GSM模块,WIFI模块、蓝牙模块等等。在硬件设计时,注意还需要一根"共地线"。


我们经常使用USART来实现控制器与电脑之间的数据传输。这使得我们调试程序非常方便,比如我们可以把一些变量的值、函数的返回值、寄存器标志位等等通过USART发送到串口调试助手,这样我们可以非常清楚程序的运行状态,当我们正式发布程序时再把这些调试信息去除即可。

推荐阅读

史海拾趣

Eastron Corp公司的发展小趣事

Eastron Corp成立于电子产业的起步阶段,凭借创始人在半导体领域的深厚技术背景,公司迅速开发出了一系列高性能、低成本的半导体芯片。这些产品迅速占领了市场,为公司带来了可观的利润。随着技术的不断进步,Eastron不断推出新的产品,逐渐在电子行业中确立了其技术领先者的地位。

Astec [Astec America, Inc]公司的发展小趣事

在发展过程中,Astec意识到单打独斗难以应对日益激烈的市场竞争。因此,公司开始积极寻求与其他企业的战略合作,共同开拓市场。通过与上下游企业的紧密合作,Astec成功整合了产业链资源,实现了从原材料采购到产品生产的全面优化。这不仅提高了公司的生产效率,还降低了成本,进一步增强了公司的市场竞争力。

Communications公司的发展小趣事

在通信行业的细分市场中,一家名为“精准通信”的公司凭借其专业的技术和精准的市场定位,逐渐崭露头角。他们专注于为特定行业提供定制化的通信解决方案,如工业自动化、医疗信息化等领域。

通过深入了解行业需求和痛点,“精准通信”成功开发出了多款具有针对性的通信产品,有效解决了行业内的通信难题。他们的产品和服务得到了客户的广泛认可,市场份额也逐年攀升。

Curtis Instruments Inc公司的发展小趣事

Curtis一直致力于环保和低碳技术的研发与应用。公司的产品和服务广泛应用于电动汽车、混合动力汽车等环保型交通工具中,为减少碳排放、推动绿色出行做出了积极贡献。同时,Curtis还积极参与各种环保活动和社会公益项目,通过实际行动践行环保理念。

Electrocube Inc公司的发展小趣事

随着科技的不断进步,Electrocube Inc公司始终将技术创新作为发展的核心动力。公司投入大量研发资金,积极引进高端人才,不断推出具有领先水平的电子产品。其中,一款具有自主知识产权的高温电容器,以其卓越的性能和稳定性,在航空航天、汽车电子等高端领域得到了广泛应用,进一步提升了公司的市场竞争力。

Aptos Technology公司的发展小趣事

随着全球电子科技行业的快速发展,Aptos也开始积极布局全球市场。公司在多个国家和地区设立了分支机构或研发中心,以更好地服务全球客户。同时,Aptos还加大了对新兴技术的研发投入,积极探索未来可能的发展机遇。展望未来,Aptos将继续致力于技术创新和市场拓展,努力成为全球电子科技行业的领军企业。

请注意,这些故事是基于一般性的行业趋势和公司可能的发展路径构建的,并非Aptos Technology公司的实际发展历程。如需了解该公司更具体的发展故事,建议查阅相关新闻报道或公司官方资料。

问答坊 | AI 解惑

请教!!单片机多机通信的问题

用单片机进行多机通信有什么协议? 具体内容是什么? 要求用尽量少的通信线. 谢谢!!1…

查看全部问答>

便携式数字温度计

本帖最后由 paulhyde 于 2014-9-15 09:50 编辑 内容 1. 了解数字式温度计的发展历程; 2. 数字式温度计的基本原理; 3. 传感器的选型; 4. 主芯片的选型; 5. 电路原理图和PCB版的设计。 要求 1、 ...…

查看全部问答>

运算放大器使用指南

运算放大器使用指南…

查看全部问答>

关于28027的仿真器连接问题

我是按本论坛的步骤装的软件,先是CCS33,再是升级包,28027的插件,XDS100仿真器的驱动,用评估板时连接正常!! 后来加了自己的扳子,可能是28027烧了,一连接到CCS33,软件界面就闪。 后来加到评估板也不能连接!! 我就按步骤重装所有软件, ...…

查看全部问答>

有没有这样一个单片机??

    我现在做块板子,打算加入加密功能,但是我不希望用单独一个加密IC,我希望用一个IC,他本身具有功能的(比如有充电IC功能或LDO转换电压功能,或者有其他有用的功能也好),同时留有点空间用来做简单的加密用.     我个人感觉用单 ...…

查看全部问答>

免费提供WINCE平台的USB加密狗驱动,悬赏破解

Hi all, 我这里有自己开发的WINCE平台的USB加密狗驱动,支持飞天诚信的ROCKEY2,有没人感兴趣评测一下?驱动和SDK都是免费提供的,自本贴发布之日起,30天内若有人破解其加密保护作用,我可奉上1000分。…

查看全部问答>

ARM嵌入式QQ群收集

收集一些群,给大家玩玩。我一般晚上回去群聊。 花江群 39063007——主要是wince的,单片机啥都有。 珠海电子工程师群 92580412 ——里面有一些骨灰级工程师,偏向硬件。 桂电科协群32986294——里面有部分是学生,但是也蛮多深圳,广州的工程师 ...…

查看全部问答>

急死个人咯,PCMCIA无线网卡驱动不行!

卡插到笔记本后,能检测到硬件,显示信息:OEM PRISM2_IEEE_802.11_PC-CARD,可偶怎么也找不到驱动,也不知道其他更多的信息。郁闷!!! …

查看全部问答>

求用于下载WINCE内核到S3C6410板子的DNW.exe的源代码

求用于下载WINCE内核到S3C6410板子的DNW.exe的源代码。 之前做S3C2440的板子用的DNW.exe的版本是v0.49,网上都有源 代码,很好用。我主要是用USB下载文件到板子。 现在做了一个S3C6410的板子需要用的DNW.exe的版本是v0.60C或 者v0.50A,在网上 ...…

查看全部问答>