工作-C语言
文章平均质量分 75
industrienorm
渣女粉碎机
展开
-
JoystickMouse
我只是USB新手,我只是想叙述一下我如何 将JoystickMouse例程 改为 USB虚拟键盘的过程,以及一些仍未解决的疑惑。我昨天补了1天的USB知识,对USB的枚举,描述符间的关系,控制传输有个大致清晰了解,但是并不深刻。(为此,我决定随后开始从PDIUSB12芯片开始学习起走)首先,我们先打开JoystickMouse的例程,先下载进单片机看看,以确保单片机和USB之间的通信是转载 2013-10-24 23:15:32 · 4122 阅读 · 2 评论 -
s3c2440 --跑马灯 C+汇编代码
/*led_asm_c.c*/#define rGPFCON (*(volatile unsigned *)0x56000050) //Port F control#define rGPFDAT (*(volatile unsigned *)0x56000054) //Port F data#define rGPFUP (*(volatile unsigned *)转载 2013-10-23 19:20:37 · 1223 阅读 · 0 评论 -
RCC_AHBPeriph_DMA DMA_Channel1 在那里定义的?
下面的在:stm32f10x_rcc.h中#define RCC_AHBPeriph_DMA1 ((uint32_t)0x00000001)#define RCC_AHBPeriph_DMA2 ((uint32_t)0x00000002)下面的在:stm32f10x.h中#define DMA1_BASE转载 2013-10-23 21:35:46 · 3095 阅读 · 0 评论 -
stm32库函数GPIO_Init()解析
GPIO_Init函数是IO引脚的初始化函数,进行个个引脚的初始化配置,主要接受两个参数,一个是配置引脚组(GPIO_TypeDef* GPIOx),一个是配置的参数( GPIO_InitTypeDef* GPIO_InitStruct),具体如下点击(此处)折叠或打开void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_转载 2013-11-08 23:22:47 · 3425 阅读 · 2 评论 -
DCMI 接口DMA 传送数据问题
最近在学习 DCMI接口 通过DMA将DCMI接口中的数据传送到内存中的一个数组中,DCMI 和 DMA都有自己的中断入口,DCMI有行同步中断 和帧同步中断,这两个中断都可以自动进入,但DMA2的传送完毕中断就是进不去,我知道DCMI中有个函数可以置位CAPTURE位,这个位可以通知DMA起动传送,我置为了可DMA2的中断就是没响应!void DCMI_Config(void转载 2013-12-02 15:56:23 · 6385 阅读 · 1 评论 -
stm32 GPIO配置以及什么时候用 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU
问题一:配置GPIO的步骤 现在做一个最简单的GPIO控制LED的 GPIO初始化 (1)初始化结构体 GPIO_InitTypeDef GPIO_InitStructure; (2)使能相应的时钟(程序最初应该有#define RCC_GPIO_LED GPIOB 或其他组端口) RCC_APB2PeriphClockCmd(RCC_转载 2013-12-02 16:11:53 · 15137 阅读 · 0 评论 -
STM32 时钟设置
STM32中在使用任何一个外设都必须打开相应的时钟,所以我从STM32的时钟学起。RCC时钟在STM32中有5个时钟源: ①、HSI是高速内部时钟,RC震荡器,频率为 8MHz。②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③、LSI是低速内部时钟,RC振荡器,频率为40kHz。④、LSE是低速外部时钟,接频率转载 2013-12-09 12:59:46 · 1962 阅读 · 2 评论 -
STM32之GPIO
1.使能GPIO的AHB时钟,使用函数: RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE);2.配置GPIO工作模式用GPIO_Init()函数数据类型说明typedef struct{ uint32_t GPIO_Pin; //引脚配置GPIOMode_TypeDef GPI转载 2013-12-02 15:52:31 · 2667 阅读 · 0 评论 -
i2c- sda挂死分析
I2C是由Philips公司发明的一种串行数据通信协议,仅使用两根信号线:SerialClock(简称SCL)和SerialData(简称SDA)。I2C是总线结构,1个Master,1个或多个Slave,各Slave设备以7位地址区分,地址后面再跟1位读写位,表示读(=1)或者写(=0),所以我们有时也可看到8位形式的设备地址,此时每个设备有读、写两个地址,高7位地址其实是相同的。I2C数据转载 2013-12-03 22:01:03 · 2255 阅读 · 0 评论 -
数据传输
当接收引脚有数据时,状态寄存器的USART_FLAG_RXNE就会为1,此时USART_GetFlagStatus(USART1, USART_FLAG_RXNE)的返回值就为1(SET),若无数据则为RESET本语句一般用于while(SET == USART_GetFlagStatus(USART1, USART_FLAG_RXNE)),或if语句作为检测或判断条件转载 2013-12-04 11:23:09 · 650 阅读 · 0 评论 -
关于stm32 的 USB 转串口 virtual_Com_Port的例程的一些问题
当从虚拟串口到真实串口发数据时,没有错误,但发送一个稍微大一点的文件时(如1M),误码率很高。不知是为什么? 其中: int main(void) { #ifdef DEBUG debug(); #endif Set_System(); Set_USBClock(); USB_Interrupts_Config(转载 2013-12-04 23:22:03 · 3550 阅读 · 0 评论 -
串口的历程库
新手,第一次自己搭建开发环境,碰到了问题,希望能人帮忙解决一下。 问题描述: 从ST官网下载的207的串口的历程库 板子有4个485口。 USART4的TX 和RX映射到PC10 PC11上,定义如下:#define EVAL_COM1 UART4#define EVAL_COM1_CLK转载 2013-12-04 23:24:27 · 982 阅读 · 0 评论 -
STM32串口DMA超时接收方法,可大大节约CPU时间
本办法使用定时器定时查询DMA接收到的数据,如果超过设定的周期则认为本次数据包结束,将数据拷贝到缓冲区,交由其他程序处理。可以接收任意大小的数据包,尤其适用于MODBUS等协议,曾经用于GPS、GPRS等接收,很实用。本方法占用CPU时间极少,尤其是波特率很高时,效果更加明显。当某一个串口的数据接收超时以后,定时器中断中将数据拷贝到缓冲区,在主程序中可以判断数据标志UART1_Flag,大于0转载 2013-12-05 10:21:40 · 3875 阅读 · 0 评论 -
串口中rts/cts
1:rts:终端我准备发数据给你,快用cts应答,准备好没? cts:好了,来吧 2: cts:主机,我有数据,请求接收 rts:我是主机,就绪,请求发送原创 2013-12-05 11:39:08 · 1098 阅读 · 0 评论 -
ARM启动代码中的断言伪指令ASSERT
ASSERT :DEF:ENDIAN_CHANGEASSERT :DEF:ENDIAN_CHANGE [ ENDIAN_CHANGE ASSERT :DEF:ENTRY_BUS_WIDTH [ ENTRY_BUS_WIDTH=32 b ChangeBigEndian ;DCD 0xea000007 ] [ ENTRY_BUS_WIDTH=16 andeq r14转载 2013-12-13 22:48:35 · 1326 阅读 · 0 评论 -
STM32F10x芯片RTC实时时钟
1、介绍 系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操作。执行以下操作将使能对后备寄存器和RTC的访问:l 设置寄存器RCC_APB1ENR的PWREN和BKPEN位,使能电源和后备接口时钟(调用:RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP | RCC_APB1Perip转载 2013-12-28 16:26:35 · 1919 阅读 · 0 评论 -
UART与USART的区别
UART与USART都是单片机上的串口通信,他们之间的区别如下: 首先从名字上看:UART:universal asynchronous receiver and transmitter通用异步收/发器USART:universal synchronous asynchronous receiver and transmitter通用同步/异步收/发器 从名转载 2013-12-28 16:27:40 · 9035 阅读 · 0 评论 -
EMC EMI EMS
1、电磁兼容EMC电磁兼容(Electromagnetic Compatibility,简写为Emc,并非指电与磁之间的兼容,电与磁是不可分割,相互共存的一种物理现象、物理环境。国际电工委员会(IEC)对EMC的定义是:指在不损害信号所含信息的条件下,信号和干扰能够共存。电磁兼容性EMC(Electro Magnetic Compatibility),是指设备或系统在其电磁转载 2013-12-28 16:37:51 · 1125 阅读 · 0 评论 -
浅谈STM32F10X芯片SysTick系统时钟定时器
1、介绍 实现Cortex-M3系统定时器SysTick的配置,需要具备以下知识:Cortex-M3系统定时器默认频率是HCLK的8分频(如下图所示),因此需要会RCC时钟的配置;然后配置SysTick系统定时器;编写SysTick中断处理函数。系统时钟及系统定时器时钟(详见手册)2、寄存器描述l SysTick控制及状态寄存器S转载 2013-12-28 16:39:03 · 1841 阅读 · 0 评论 -
STM32F10x芯片GPIO/AFIO端口配置总结
以下是STM32F10x芯片GPIO/AFIO端口配置详细介绍,欢迎大家查阅,如有问题,可联系我:1、介绍STM32F10x芯片的GPIO/AFIO配置主要包括以下几方面知识:在时钟控制模块中配置好相应总线时钟,并在总线上使能对应的GPIO口(AFIO口,需要的话)时钟后:根据需求配置相应GPIO端口为对应的输入/输出模式,按需求更改/读取端口的数据;端口功能重映射;若用外部中断,转载 2013-12-28 16:41:24 · 2265 阅读 · 0 评论 -
SPI,UART,I2C都有什么区别,及其各自的特点
区别:SPI:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 I2C:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片。有一点要注意的转载 2013-12-28 16:48:14 · 1227 阅读 · 0 评论 -
PWM输出引脚重映射
//PWM输出初始化 //arr:自动重装值 //psc:时钟预分频数 void PWM_Init(u16 arr,u16 psc) { //此部分需手动修改IO口设置 RCC->APB1ENR|=1RCC->APB2ENR|=1<<3; //使能PORTB时钟 RCC->APB2ENR|=1AFIO->MAPR&=0XFFFFF3转载 2013-12-28 16:36:18 · 1823 阅读 · 0 评论 -
STM32学习笔记——TFT2.4彩屏显示图片
利用彩屏显示图片需要先完成彩屏的驱动程序,然后在驱动程序的基础上再编写应用程序。彩屏的驱动程序如果写好的话,就可以一直使用了,精力主要集中在应用程序的编写就可以了,但是移植的话,要移植驱动程序。其实移植也只是改变那些很底层的靠近处理器的那部分代码。 因为STM32F103C8的片上只有64K的FLASH,所以不能存储太多的图片数据,也就不能显示太大的图片。一下的程序转载 2013-12-16 23:00:59 · 2678 阅读 · 1 评论 -
uint8_t是什么数据类型
在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等。咋一看,好像是个新的数据类型,不过C语言(nesc是C的扩展)里面好像没有这种数据类型啊!怎么又是u又是_t的?很多人有这样的疑问。论坛上就有人问:以*_t结尾的类型是不是都是long型的?在baidu上查一下,才找到答案,这时才发觉原来自己对C掌握的太少。那么_t的意思到底表示什么?具体的官方答案没有找到,不过我觉得有转载 2013-12-31 10:46:37 · 8896 阅读 · 0 评论 -
STM32F0电机套件 BLDC PMSM电机控制方案 配 STM32 F0C3.2库移植例程
STM32F0电机套件 BLDC PMSM电机控制方案 配 STM32 F0C3.2库移植例程STM32F0-MC-NNMOS/UET 电机控制套件含四部分:主控制板、驱动板、一个BLDC电机和一个JLINK调试器。主控板上自带一个2.4‘TFT LCD,采用STM32F051R8T6芯片。开发套件可以驱动PMSM电机或BLDC电机。用户可能过STLINK或JLINK下载程序并进行调试运转载 2013-12-30 21:39:25 · 7697 阅读 · 2 评论 -
STM32 深入浅出 (新手必看)
STM32学前班教程之一:为什么是它 经过几天的学习,基本掌握了STM32的调试环境和一些基本知识。想拿出来与大家共享,笨教程本着最大限度简化删减STM32入门的过程的思想,会把我的整个入门前的工作推荐给大家。就算是给网上的众多教程、笔记的一种补充吧,所以叫学前班教程。其中涉及产品一律隐去来源和品牌,以防广告之嫌。全部汉字内容为个人笔记。所有相关参考资料也全部列出。:lol 教程会转载 2013-12-30 14:40:24 · 6606 阅读 · 1 评论 -
STM32实现DAC输出的相关设置
STM32 DAC简介 大容量的STM32F103具有内部DAC,战舰STM32选择的是STM32F103ZET6属于大容量产品,所以是带有DAC模块的。STM32的DAC模块(数字/模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2转载 2013-12-30 21:34:54 · 12346 阅读 · 0 评论 -
STM32学习笔记
STM32学习笔记三 竹天笑前言:开始学USART+DMA的时候看到帖子《STM32 UART DMA实现未知数据长度接收》,觉得方法妙极了。此下出自此帖子——(整体的思路是这样的,一开始设置好DMA接收,可以把缓冲区长度设置为帧最大长度,我们可以把RX连接到定时器的管脚输入端,并且一开始设置输入并且使能引脚下降沿中断,当帧的第一个字节发送时,因为起始位为低电平,空闲时UART为高电平,满足条转载 2013-12-30 21:57:06 · 1175 阅读 · 0 评论 -
STM32F PWM的生成
void TIME3_Config(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; GPIO_InitTypeDef GPIO_InitStructure; TIM_OCInitTypeDef TIM_OCInitStructure; //第一步:配置时钟 // GPIOC Configurat转载 2013-12-30 21:57:32 · 1252 阅读 · 2 评论 -
STM32之DAC配置
STM32F103VCT6自带两个12位DAC,DAC的转换速度一直没有查到,网上有人说是1MHZ的频率,那就是1us了。ADC的转换时间在56MHZ工作频率下为1us,在72MHZ工作频率下为1.17us。如果AD和DA有对称关系的话,那么很可能跟ADC的时间相同。(仅作分析用!) DAC于我,有两个用途:输出波形和输出固定电压。先来说说前者的配置。 第一转载 2013-12-30 22:01:36 · 1592 阅读 · 0 评论 -
学习笔记----stm32的usb外设概述
一、stm32的usb简介:1。usb外设实现了usb2.0全速总线和APB1总线间的接口。2。usb外设支持usb挂起/恢复操作,可以停止设备时钟实现低功耗。二、usb主要特征1。符合usb2.0全速设备的技术规范2。可配置1到8个usb端口3。CRC(循环荣誉校验)生成/检验,反向不归零(NRZI)编码/解码和位填充4。支持同步传输转载 2013-12-17 10:02:34 · 2308 阅读 · 0 评论 -
浅谈STM32的DMA模块的使用
前言:接触MCU的编程已经有几年的历史,刚开始是从PLC(C语言的)学习与应用,后来有学习了8bits的AVR单片机,对MCU有一定的了解;最近接触了STM32的Chip,发现其优点不只是单单宣传的32bits的MCU的速度,而且在编程的风格上也有了较大的变化(与我原有的编程习惯);特别是有一个与CPU并行运行的模块:DMA,对它印象深刻。现在就和大家一起讨论学习这个Module,谈谈我在学习中一转载 2013-12-17 11:26:33 · 1000 阅读 · 0 评论 -
STM32的USB多包数据传送
因为我看到STM32的USB都没有对发送状态进行检测,当多于传送缓冲器的数据要传送时,估计就会出错了,所以找下这篇文章,但没有找到原始作者,但也在此谢过了!STM32的多包数据传送(转贴)SMT32F103,根据例程 Custom_HID 修改,利用 EP1 以 EP_INTERRUPT 的方式发送包,原来的例程每次发送 2 个字节,现在修改后包的长度不超过 64 字节转载 2013-12-31 12:12:44 · 3123 阅读 · 0 评论 -
USB 描述符详细解析,来自老外网站,比协议描述清晰
来自:http://wiki.osdev.org/Universal_Serial_BusUniversal Serial BusThe Universal Serial Bus was first introduced in 1994 with the intention of replacing various specialized interfaces,转载 2013-12-31 14:15:14 · 1579 阅读 · 0 评论 -
STM32数据类型定义
#ifndef __STM32F10x_TYPE_H#define __STM32F10x_TYPE_Htypedef signed long s32;typedef signed short s16;typedef signed char s8;typedef signed long const sc32; typedef signed short const sc16;转载 2013-12-18 10:02:30 · 3102 阅读 · 0 评论 -
STM32 USB 问题汇总
汇总1:STM32的USB例程修改步骤,来自http://blog.csdn.net/cy757/archive/2010/01/01/5117610.aspx 以下是笔者将ST的Custom_HID例程修改为“自定义USB设备”例程时总结出来的,因为笔者也是刚刚学USB开发不久,某些方面理解错误在所难免,请各位大虾指正。一、usb_desc.c文件根据你程序使用的转载 2013-12-31 14:11:29 · 3233 阅读 · 2 评论 -
USB描述符详解
一、基本概念 1、USB协议本身很复杂,但方便在提供了统一的接口方式,使得驱动程序在使用设备的时候,工作简化到了类似操作串行接口。 2、USB设备可以看作提供了多个串口的设备,依据USB的规范,我们将每个串口称作端点(Endpoint),要和这个端点通信,我们就要打开到这个端点的连接,这个连接就是管道(Pipe)。 3、打开端点之后,就可以像串口一样进行数据传输了转载 2014-01-03 10:01:17 · 798 阅读 · 0 评论 -
usb otg的一些简介
1 . 什么是USB OTG? USB OTG是USB 2.0的补充规范2. USB OTG针对USB 2.0的最重要扩展是什么? 更具节能性的电源管理和允许设备以主机和外设两种形式工作。3. USB2.0中定义三种类型: HOST(主机),Device(设备), HUB OTG新增两种设备: Dual-role device(两用设备),Perip-he转载 2014-01-03 10:02:03 · 1038 阅读 · 0 评论 -
简述SD卡工作流程
SD卡读写包括两种模式:SD模式和SPI模式。其中SD模式又可以分为1bit和4bit两种传输模式。SD卡缺省使用专有的SD模式。SD卡规范中主要讲了一些命令,响应和CRC效验等等,整个规范的内容还是很多的。 SD卡上电后,卡处于空闲状态,主机发送CMD0复位SD卡,然后通过CMD55和ACMD41判断当前电压是否在卡的工作范围内。在得到了正确的响应后,主机可以继续通过CMD10读取转载 2014-01-03 10:03:50 · 1176 阅读 · 0 评论 -
OTG详解
故事背景:OTG,USB技术范畴,实现在没有Host(如PC机)的情况下,从设备间的数据传送。说白了,就是如果你的平板或手机支持OTG功能的话,就可以直接把u盘插如其usb口子,使其可以像电脑一样读写u盘里的数据。高通MSM7x27平台就支持这个功能。作为具有otg功能的设备,当你插入像u盘这样的从设备的时候,就存在一个给从设备供电的问题。你要给人家供电。本帖就讨论学习一下msm7转载 2013-12-19 14:24:04 · 4121 阅读 · 0 评论