STM32
john_liqinghan
我的人生需要一步步的积累需要一步步的实现也许前方是泥泞不堪但我也会风雨无阻的前行
展开
-
STM32 USB那点事之6
SetEPTxCount(ENDP2, count)假如count小于或等于报描述报告告中规定的COUNT,那么USB输入设备可以发送数据,但HID Complaint Device向USB输入设备层请求数据是得不到数据。先选中:在BUS Hound,中的体现:如果count 反之:count >report Count Size时候:如下: 上面一个是HI原创 2013-02-25 09:50:11 · 1587 阅读 · 0 评论 -
STM32 IO 问题
今天调试一块板子出现如下问题:某口 PB5,用某个芯片的复位工作。配置如下:#define GPIO_PIN_REST GPIO_Pin_5GPIO_InitStructure.GPIO_Pin = GPIO_PIN_REST;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;GPIO_Init(GPIOB, &GPIO_原创 2013-04-19 11:09:22 · 1236 阅读 · 0 评论 -
STM flash数据读取
/////////////**************************.h文件*********************************///////////////////////////////////#ifndef _FLASH_CTRL_H_#define _FLASH_CTRL_H_#ifdef STM32F10X_HD#define FLASHADDRS原创 2013-04-12 17:14:02 · 1879 阅读 · 0 评论 -
STM32的SysTick
SysTick配置函数:static __INLINE uint32_t SysTick_Config(uint32_t ticks){ if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible,ticks过大 */原创 2012-12-29 20:24:45 · 1577 阅读 · 0 评论 -
STM32程序跳转需要注意的问题
Note: keil生成的.axf或者.elf都是可以执行的镜像文件。IAP User Program 需要注意的问题要设置好好中断向量的问题,假设User Program 开始地址是(0x08008000),那么中断向量就必须设在在0x08008000处,中断向量要设置program的开始的位置。User Program到IAP主要是要设置好中断向量,跳转前要注意设置中断原创 2014-03-27 18:24:22 · 8642 阅读 · 5 评论 -
记:STM32F205双USB开发做device
STM32F205双USB开发做device。 记得使用STM32CubeMx联合开发,会让你有意想不到效率!STM32F205有两个USB接口,一个是FSUSB,另外一个是HSUSB。 FSUSB——full speed USB ,HSUSB——high speed USB FSUSB最高支持全速的USB,HSUSB不仅支持全速的USB还支持高速的USB,当然HSUSB要支持高速的USB必须原创 2016-12-20 22:29:30 · 4939 阅读 · 0 评论 -
AT24C128 EEPROM的读写
记录AT24C128 eeprom的多字节读写#define _EEPROM_DEBUG_LEVEL 0 #if _EEPROM_DEBUG_LEVEL == 1 #defineEEPROM_DEBUG(fmt,args...) do{ \ printf(fmt,##args);\ }while(0原创 2017-02-17 21:22:16 · 7302 阅读 · 0 评论 -
STM32连接射频si4438模块
SI4438射频模块参数:1、频率范围:425-525 MHz2、数字接收信号强度指示(RSSI)3、64字节收发数据寄存器(FIFO)4、跳频功能等!使用SI的WDS工具生成代码1、 选择仿真模式2、 芯片选择si4438 B1模式3、 Radio Configuration Application4、 Select Application原创 2017-02-14 22:44:55 · 7125 阅读 · 0 评论 -
stm32f407以太网及USB OTG快速开发
stm32f407以太网及USB OTG快速开发引言想要快速完成网络协议栈和USB OTG功能,使用ST自家的工具STM32CubMx再好不过的了。如果你还不会使用,别着急下面我会一步一步的用图片告诉你如何做。软件平台:windows、STM32CubMx、keil v5硬件平台:原子的stm32f407ZGT6开发板,STM32CubMx配置1、以太网管脚的映射配置原创 2017-03-18 19:09:05 · 27791 阅读 · 6 评论 -
使用STM32CubeMx创建U盘读写程序
平台windows 7CPU:STM32F205软件:keil 5下载STM32CubeMx:http://pan.baidu.com/s/1bpsvV6R安装好后,建立usbMassClass工程,注意选择芯片。选择自己要的功能如下图:外部是时钟的选择:FSUSB的选择debug口选择UASRT1选择USB IPco原创 2017-01-21 11:18:35 · 17196 阅读 · 11 评论 -
STM32 内部flash的读写程序
/* Base address of the Flash sectors */#define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) /* Base @ of Sector 0, 16 Kbytes */#define ADDR_FLASH_SECTOR_1 ((uint32_t)0x08004000) /* Base @ of S原创 2017-03-07 13:04:39 · 1246 阅读 · 0 评论 -
红外解码 IRCode
最近工作中要解遥控器按键,总结一下解码过程!利用外部中断和定时钟中断即可解决!EXTI_ClearITPendingBit(EXTI_Line0);if(CountFlag==0){TIM_Cmd(TIM2, ENABLE);//有按键按下。打开定时器CountFlag=1;falling_edge_count=0;falling_edge_time=0原创 2014-02-28 18:45:10 · 3684 阅读 · 0 评论 -
STM32 TIMER2的使用
配置定时100us的配置如下:TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);TIM_DeInit(TIM2);TIM_TimeBaseStructure.TIM_Period = 1;//59999;//1199;//9999;TI原创 2014-03-05 18:29:45 · 3247 阅读 · 0 评论 -
OV7740使用方法2
关于硬件的连接: SDA和SCL线一定要接上拉,我使用STM32时候,没有加上拉,一直搞不出图像,加两个上拉现在好了! 帧率的计算: fps = pclk/(2*HtpCounter*Vcounter) YUV模式fps = pclk/(HtpCouter*VCounter) RGB模式OV 7740默认输出的是YUYV的原创 2013-04-25 22:34:29 · 4506 阅读 · 0 评论 -
STM32 keilC 局部变量和全局变量
keil C中的局部变量是放在栈中,而栈大小在启动文件中设置好了的,所以在写函数的局部变量的时候不应该定义大的数组,不然栈不够装,就会就会导致局部变量的地址和全局变量的地址重叠。原创 2013-05-15 22:48:05 · 9558 阅读 · 0 评论 -
指针变量
很容易弄错。指针必须指向一块内存才可以对他指向的地方给值typedef struct _tagStillwen{unsigned char element;unsigned char count;}stwen;stwen *pStwen;void init(){pStwen -> count =0;pStwen-> elemen=0;原创 2013-05-22 20:33:57 · 673 阅读 · 0 评论 -
1s钟闪烁一次设计的bug。
while(1){if((systickTime%1000)==0x00){if(GPIO_ReadOutputDataBit(LEDPORT,LEDPIN) == 0) LED_OFF;else LED_ON;}}看似没有bug,细想一下就可以看出来了。while循环里面执行一次需要的时间根本达不到1ms,所以在systickTime还没变化之前就已经执行while循原创 2013-05-27 09:14:39 · 907 阅读 · 0 评论 -
STM32 USB HID 键盘
USB的HID键盘 报告0x05, 0x01, // USAGE_PAGE (Generic Desktop)0x09, 0x06, // USAGE (Keyboard)0xa1, 0x01, // COLLECTION (Application)0x05, 0x07, //USAGE_PAGE (Keyboard)0x19, 0x29,原创 2014-02-28 18:34:49 · 7100 阅读 · 0 评论 -
串口传送数据出错!
原本是对的。我一直按住复位键,然后在放开复位键,发现串口竟然不发送了!神奇,要再按几次复位键发送数据。但是发送的数据和原来根本不一样!求解???应该是程序出错了!!!!原创 2013-03-01 16:50:07 · 1802 阅读 · 0 评论 -
USB那点事3 -使用端口2作为custom HID的传输
USB custom HID例子中是使用了端口1作为通信,那么现在我使用端口2作为通信端了,该如何修改呢?如下所示:首先修改:usb_desc.c中的const u8 CustomHID_ConfigDescriptor[CUSTOMHID_SIZ_CONFIG_DESC]这个字符数组里面的内容:如下红色的为修改部分,未列出的不用修改: USB_ENDPOINT_DESCRIPT原创 2013-01-24 14:50:44 · 4915 阅读 · 2 评论 -
OV7740 之STM32 源代码
/* Includes ------------------------------------------------------------------*/#include "stm32f10x.h"#include "stm32f10x_exti.h"#include "OV7740.h"#include "OV7740Reg.h"#include "sccb.h"#原创 2014-10-17 16:05:16 · 3576 阅读 · 3 评论 -
STM32 多个个APP的跳转
#define IapApplicationAddress 0x08000000//这里是要跳转的APP的起始地址。typedef void (*pFunction)(void);uint32_t JumpAddress;unsigned int systime;pFunction Jump_To_Application;void JumtoIap(void)原创 2014-03-27 18:20:40 · 4392 阅读 · 0 评论 -
STM32 IWDG设置
STM32 内部看门狗的设置STM32 有两个看门狗,这里介绍的是IWDG内部看门狗。时钟来源: 内部的40KHz的时钟,与系统时钟无关!如下所示:这里的fsoc才是IWDG真正的时钟!(IWDG_Prescaler_XX指的是XX分频)。IWDG的重载值寄存器:RLR 是一个16位的寄存器,只有低12bit可以使用,其他的保留!所以重载值最大是0x原创 2014-03-07 18:41:42 · 10391 阅读 · 0 评论 -
stm32f205开发记录
stm32f205开发记录发现发送键盘按键按下立即发送一个松手动作,无法释放按键。经过测量中间要有一定的延时、有的说在发送完毕回调做相应的处理。具体我没有找到发送完毕回调,我使用延时几个毫秒,具体几个毫秒需要测量,我延时2ms左右既可以发送释放按键动作。 stm32f205的串口,尽管使用了标志位判断,仍然无法快速发送,中间还是需要一定的延时操作,感觉stm32f205和stm32f1...原创 2017-06-12 21:50:41 · 3172 阅读 · 0 评论