当前位置: 首页 > news >正文

网页版微信怎么加好友电商seo引流

网页版微信怎么加好友,电商seo引流,公司简介模板范本,贵州省城乡建设厅网站GD32F103输入捕获程序#xff0c;经过多次测试#xff0c;终于完成了。本程序将TIMER2_CH2通道映射到PB0引脚#xff0c;捕获PB0引脚低电平脉冲时间宽度。PB0是一个按钮#xff0c;第1次按下采集一个值保存到TIMER2_CountValue1中#xff0c;第2次按下采集一个值保存到TIM…GD32F103输入捕获程序经过多次测试终于完成了。本程序将TIMER2_CH2通道映射到PB0引脚捕获PB0引脚低电平脉冲时间宽度。PB0是一个按钮第1次按下采集一个值保存到TIMER2_CountValue1中第2次按下采集一个值保存到TIMER2_CountValue2中然后计算其低电平时间宽度。 网上也有人写了测试案例但好像能用但不是很完善。 我喜欢直奔主题程序如下 #include Timer2_InputCapture.h #include stdio.h //使能printf(),sprintf()uint16_t TIMER2_CountValueMAX 65535;//设定最大捕获计数器值为65535 uint32_t TIMER2_CLKFrequence; uint16_t TIMER2_OverValue 0;//溢出次数 uint32_t TIMER2_CountValue10; uint32_t TIMER2_CountValue20; uint32_t TIMER2_CountResult0; uint8_t TIMER2_CaptchStatus0; float MyPeriod0; float MyFrequence0;void TIMER2_Input_Init(void);//函数功能:将TIMER2_CH2通道映射到PB0引脚,捕获PB0引脚低电平脉冲时间宽度 //Tout(655351)*(1071)/1080000000.065536秒 //TIMER2输入时钟频率:108000000/(1071)1000000Hz void TIMER2_Input_Init(void) {timer_parameter_struct TimerParameterStruct; //TIMER0初始化结构体timer_ic_parameter_struct timer_icinitpara; //TIMER0输入捕获结构体rcu_periph_clock_enable(RCU_TIMER2); //使能TIMER0时钟rcu_periph_clock_enable(RCU_GPIOB); //使能GPIOB时钟rcu_periph_clock_enable(RCU_AF); //使能复用时钟gpio_init(GPIOB, GPIO_MODE_IPU, GPIO_OSPEED_50MHZ, GPIO_PIN_0);//将TIMER2_CH2通道映射到PB0引脚timer_deinit(TIMER2);timer_struct_para_init(TimerParameterStruct); //将初始化结构体参数变为初始值TimerParameterStruct.period TIMER2_CountValueMAX; //定时器装载值,计数值超出后会产生溢出中断TimerParameterStruct.prescaler 107; //设置用来作为TIMx时钟频率除数的预分频值(APB2时钟分频值) //Tout ((arr1)(psc1))/Tclk //TclkTIM的输入时钟频率(单位为Hz),在这里是108000000Hz //psc为定时器预分频值,在这里是107 //arr为重装载值,在程序中为65535 //ToutTIM溢出时间(单位为s),Tout(655351)*(1071)/1080000000.065536秒TimerParameterStruct.clockdivision TIMER_CKDIV_DIV1; //设置时钟分母值为1TimerParameterStruct.counterdirection TIMER_COUNTER_UP; //设置计数方向为向上计数TimerParameterStruct.alignedmode TIMER_COUNTER_EDGE; //设置为无中央对齐计数模式(边沿对齐模式)TimerParameterStruct.repetitioncounter 0; //重复计数,重复溢出多少次才会溢出中断,此处配置为0,不重复timer_init(TIMER2,TimerParameterStruct);//根据TimerParameterStruct所指向的参数初始化TIMERx的时间基数单位timer_channel_input_struct_para_init(timer_icinitpara); //将输入捕获结构体参数变为初始值timer_icinitpara.icpolarity TIMER_IC_POLARITY_FALLING; //通道输入极性timer_icinitpara.icselection TIMER_IC_SELECTION_DIRECTTI; //通道输入模式选择通道直连timer_icinitpara.icprescaler TIMER_IC_PSC_DIV1; //通道输入预分频器timer_icinitpara.icfilter 0; //通道输入捕获滤波timer_input_capture_config(TIMER2,TIMER_CH_2,timer_icinitpara);timer_counter_value_config(TIMER2,0);//设置TIMER2的计数器初始值为0timer_auto_reload_shadow_enable(TIMER2); //自动重装载使能 /timer_flag_clear(TIMER2,TIMER_FLAG_UP); //清除TIMERx更新标志位timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_UP); //清除TIMERx更新中断标志位timer_interrupt_enable(TIMER2,TIMER_INT_UP); //使能TIMERx更新产生中断timer_internal_clock_config(TIMER2);//设置内部时钟作为定时器时钟TIMER2_CLKFrequenceSystemCoreClock/(TimerParameterStruct.prescaler1);//SystemCoreClock108000000MHz /timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_CH2); //清除CH2的中断标志位timer_interrupt_enable(TIMER2,TIMER_INT_FLAG_CH2); //CH2通道中断使能nvic_irq_enable(TIMER2_IRQn,1,0); //使能中断线timer_enable(TIMER2); }/* KEY0 TIMER2_OverValue11, TIMER2_CountValue119395, TIMER2_CountValue230890, TIMER2_CountResult732380 MyPeriod0.732380s MyFrequence1.365411Hz KEY0 */ //TIMER2中断服务函数 void TIMER2_IRQHandler(void) {if( SET timer_interrupt_flag_get(TIMER2,TIMER_INT_FLAG_UP) )// 读取更新中断标志位{if(1 TIMER2_CaptchStatus) TIMER2_OverValue;timer_flag_clear(TIMER2,TIMER_FLAG_UP); //清除TIMER0更新标志位timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_UP); //清除更新中断标志位 // printf(\r\nTIMER2 Interrupt);}if(timer_interrupt_flag_get(TIMER2,TIMER_INT_FLAG_CH2) ! RESET){timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_CH2);if(0 TIMER2_CaptchStatus){TIMER2_OverValue0;//清除溢出计数器TIMER2_CountValue1 timer_channel_capture_value_register_read(TIMER2,TIMER_CH_2);TIMER2_CaptchStatus 1;}else if(1 TIMER2_CaptchStatus){TIMER2_CountValue2 timer_channel_capture_value_register_read(TIMER2,TIMER_CH_2);TIMER2_CountResult (TIMER2_OverValue*TIMER2_CountValueMAX-TIMER2_CountValue1)TIMER2_CountValue2;MyPeriod(float)TIMER2_CountResult/TIMER2_CLKFrequence;MyFrequence (float)TIMER2_CLKFrequence/ TIMER2_CountResult;printf(\r\nTIMER2_OverValue%u, TIMER2_CountValue1%u, TIMER2_CountValue2%u,TIMER2_OverValue,TIMER2_CountValue1,TIMER2_CountValue2);printf(, TIMER2_CountResult%u,TIMER2_CountResult);printf(\r\nMyPeriod%fs,MyPeriod);printf(\r\nMyFrequence%fHz,MyFrequence);TIMER2_OverValue 0;//溢出次数TIMER2_CountValue10;TIMER2_CountValue20;TIMER2_CountResult0;TIMER2_CaptchStatus 0;}} } #include KEY.hvoid KEY_Init(void);//函数功能:初始化KEY void KEY_Init(void) {rcu_periph_clock_enable(RCU_GPIOB);//使能GPIOB时钟,enable GPIO clockgpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_0);//将GPIOB0设置为浮空输入 } #ifndef __KEY_H #define __KEY_H#include gd32f10x.h //使能uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t#define KEY PBin(0) //读取PB0的输入状态值 #define Read_KEY_Value() gpio_input_bit_get(GPIOB, GPIO_PIN_0) //读取PB0的输入状态值extern void KEY_Init(void);#endif #include gd32f10x.h //使能uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t #include UART3.h #include stdio.h //使能printf(),sprintf() #include KEY.h #include Timer2_InputCapture.hconst char CPU_Reset_REG[]\r\nCPU reset!\r\n; int main(void) {//NVIC_PRIGROUP_PRE4_SUB0:抢占优先级为4bit(取值为0~15),子优先级为0bit(没有响应优先级)//NVIC_PRIGROUP_PRE3_SUB1:抢占优先级为3bit(取值为0~7),子优先级为1bit(取值为0~1)//NVIC_PRIGROUP_PRE2_SUB2:抢占优先级为2bit(取值为0~3),子优先级为2bit(取值为0~3)//NVIC_PRIGROUP_PRE1_SUB3:抢占优先级为1bit(取值为0~1),子优先级为3bit(取值为0~7)//NVIC_PRIGROUP_PRE0_SUB4:抢占优先级为0bit(没有抢占优先级),子优先级为3bit(取值为0~15)nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0);//设置系统中断优先级抢占优先级为4bit,子优先级为0bitUART3_Init(115200);//初始化UART3printf(%s,CPU_Reset_REG);//调试串口输出\r\nCPU reset!\r\nINTX_ENABLE();//开启所有中断KEY_Init();//初始化KEYTIMER2_Input_Init();//将TIMER2_CH2通道映射到PB0引脚,捕获PB0引脚低电平脉冲时间宽度while(1){if(KEY0){printf(\n\rKEY0);while(KEY0);//等待按键释放}} } #include UART3.h #include stdio.h //使能printf(),sprintf()void UART3_Init(unsigned int bound);//函数功能初始化串口3,这个和STM32F103VET6的UART4兼容 void UART3_Init(unsigned int bound) {rcu_periph_clock_enable(RCU_GPIOC); //使能GPIOC时钟,enable GPIO clock rcu_periph_clock_enable(RCU_UART3); //使能UART3时钟,enable USART clockgpio_init(GPIOC, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10);//将GPIOC10设置为AFIO口(复用IO口),输出上拉gpio_init(GPIOC, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_11);//将GPIOC11设置为浮空输入口usart_deinit(UART3); //复位UART3,USART configureusart_baudrate_set(UART3, bound); //设置UART3的波特率usart_word_length_set(UART3, USART_WL_8BIT); //设置UART3数据传输格式为8位usart_stop_bit_set(UART3, USART_STB_1BIT); //设置UART3停止位为1位usart_parity_config(UART3, USART_PM_NONE); //设置UART3无需奇偶校验usart_hardware_flow_rts_config(UART3, USART_RTS_DISABLE); //设置不使能UART3的RTS引脚功能usart_hardware_flow_cts_config(UART3, USART_CTS_DISABLE); //设置不使能UART3的CTS引脚功能usart_receive_config(UART3, USART_RECEIVE_ENABLE); //使能UART3接收usart_transmit_config(UART3, USART_TRANSMIT_ENABLE); //使能UART3发送usart_enable(UART3); //使能UART3 }/* retarget the C library printf function to the USART */ int fputc(int ch, FILE *f) {usart_data_transmit(UART3, (uint8_t) ch);while( RESET usart_flag_get(UART3, USART_FLAG_TBE) ){//等待串口0发送结束}return ch; }
http://www.dnsts.com.cn/news/90990.html

相关文章:

  • 南京网站制作百家号湖州设计公司有哪些
  • 兼职做网站访问量和数据网站界面设计基础
  • php购物网站开发摘要杭州做网站推广公司推荐
  • 网站建设需要资质南城网站仿做
  • 营销型企业网站系统模板下载电子商务网站建设策划书 服装 有详细数据库设计
  • 做淘宝需要知道什么网站国外html模板网站
  • 品牌创意网站网站建设中的功能模块描述
  • 西红柿怎么做网站wordpress 数据库字段
  • 新浪云虚拟主机做电影网站wordpress 嵌入 php代码
  • 昆山网站维护模板网站建设报价
  • 做网站费用联系方式wordpress数字减1
  • 毕业设计网站开发选题依据广东泰通建设有限公司网站
  • 公司网页制作设计合肥网络seo推广服务
  • 申请免费网站主页空间东莞做棋牌网站建设
  • 土巴兔网站开发网课营销方案
  • 中国建设银行网站忘记密码django做的网站安全吗
  • 网站建设 源码网站服务器有哪几种
  • 余杭网站建设电子商务网站面临的安全隐患
  • 进入城乡建设网站怎么竣工备案太原百度关键词优化
  • 中国建设银行上海分行信息网站软件开发app制作公司
  • 常州网站推广软件信息游戏服务器
  • 汕头网站制作流程柳州市网站制作公司
  • 惠州网站建设服务做照片视频的网站
  • 官网网站建设企业南昌网站建设公司价位
  • 建设工程用地批准手续在哪个网站家具网站模板
  • 手机做网站需要多少天官方网站建设计划
  • 深圳市建设银行网站首页开网站做销售
  • 链接网站开发需要多少钱温州市建设小学网站
  • 盘锦网站建设策划个人可以做电商网站吗
  • 有域名了建立免费网站悦阁网站开发旗舰店