(8)hw_config.h文件重写
#ifndef hw_config_h
#define hw_config_h
#include platform_config.h
#include usb_type.h
typedef enum
{
disable = 0, enable = 1}functionalstate;
#define bulk_max_packet_size 0x00000040 //包大小,最大64字节
void led_rw_on( void ) ; //led开启
void led_rw_off( void ) ; //led关闭
void set_usbclock( void ) ; //usb时钟配置函数
void enter_lowpowermode( void ) ; //usb进入低功耗模式
void leave_lowpowermode( void ) ; //usb退出低功耗模式
void usb_interrupts_config( void ) ; //usb中断配置
void usb_port_set( u8 enable ) ; //usb使能
void get_serialnum( void ) ; //获取stm32的唯一id
#endif
(9)hw_config.c文件重写
#include usb_lib.h
#include mass_mal.h
#include usb_desc.h
#include usb_pwr.h
#include usb_lib.h
#include usb_istr.h
void usb_notconfigured_led()
{
}
void usb_cable_config( functionalstate newstate )
{
}
void led_rw_off()
{
}
void led_rw_on()
{
}
void usbwakeup_irqhandler()
{
exti->pr |= 1
void usb_interrupts_config()
{
exti->imr |= 1crh |= 0x00033000 ; paout( 12 ) = 0 ; }}
void inttounicode( u32 value, u8 *pbuf, u8 len )
{
u8 idx ; for( idx=0; idx>28 )>28 )+'0' ; else pbuf[ 2*idx ] = ( value>>28 )+'a'-10 ; value <<= 4 ; pbuf[ 2*idx+1 ] = 0 ; }}
void get_serialnum()
{
u32 device_serial0, device_serial1, device_serial2 ; device_serial0 = *( u32* )0x1ffff7e8 ; device_serial1 = *( u32* )0x1ffff7ec ; device_serial2 = *( u32* )0x1ffff7f0 ; device_serial0 += device_serial2 ; if( device_serial0!=0 ) { inttounicode( device_serial0, &mass_stringserial[ 2 ] , 8 ) ; inttounicode( device_serial1, &mass_stringserial[ 18 ], 4 ) ; }}
(10)platform_config.h文件重写
#ifndef platform_config_h
#define platform_config_h
#include sys.h
#define use_stm3210e_eval //当前使用的版本
#endif
(11)usb_pwr.c文件修改(改写suspend函数)
void suspend(void)
{
uint32_t i=0 ; uint16_t wcntr ; __io uint32_t savepwr_cr=0 ; wcntr = _getcntr() ;for( i=0; i<8; i++ ) ep[ i ] = _getendpoint( i ) ; wcntr |= cntr_resetm ; _setcntr( wcntr ) ; wcntr |= cntr_fres ; _setcntr( wcntr ) ; wcntr &= ~cntr_fres ; _setcntr( wcntr ) ; while( ( _getistr()&istr_reset )==0 ) ; _setistr( ( uint16_t )clr_reset ) ; for( i=0; i10 ) bdevicestate = unconnected ; //2s内没收到在线标记,代表usb被拔出了 } usb_status_reg = 0 ; } }}
储能锂电池组的规格根据什么来配置?
金属粉尘、酸雾、温度影响较大的环境如何选择静止无功器SVG和有源滤波器APF
Deezer研究人员成功开发出能识别歌曲中情绪的人工智能
如何通过PIC32以太网模块与CAN总线实现远程监测与控制?
OPPOR11评测直播多次被封,难道真是“假”双摄?oppor11内部做工如何?oppor11拆机图解教程
STM32入门学习笔记之USB读卡器实验3
九联科技成为华为OpenHarmony生态使能伙伴
用于Windows on Arm的开源性能分析工具
交流接触器的选型知识
海洋经济领域的人工智能应用待开发重视
亚太地区成长力道强劲 LTE市场发展添动能
高通5G基带骁龙X60已经确定与旗舰平台骁龙888集成
一文解析Cortex-M处理器架构特性
将与小米Max2撞车?华为本月将发布华为MateBook 2
小米米家智能后视镜评测 999元即可体验豪华车配置
优势凸显!长三角新能源产业集群带来发展机遇
华邦电子成为全球首家获得ISO/SAE 21434道路车辆网络 安全管理体系认证的存储厂商
奥锐达正式发布单光子面阵固态激光雷达技术方案
英特尔未来两年复杂的AI战略方案可归纳成以下三点思想
如何在家建立电子实验室?