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

做电影网站服务器广告投放的方式有哪些

做电影网站服务器,广告投放的方式有哪些,做百度ssp的网站开发人,网站建设有关模板串口理论部分可看51部分:链接 数据帧 帧头(2字节,例如AA、BB) 数据长度(2字节) 数据 CRC16校验(2字节) 帧尾(2字节) 代码编写 串口一发送命令控制LED灯(PB5、PE5) LED灯、串口、…

串口理论部分可看51部分:链接

数据帧 = 帧头(2字节,例如AA、BB) + 数据长度(2字节)+ 数据 + CRC16校验(2字节) + 帧尾(2字节)

代码编写

串口一发送命令控制LED灯(PB5、PE5)

LED灯、串口、串口打印浮点数据、串口重定向配置

LED灯配置请看:链接

串口配置:

串口配置

配置中断NVIC(嵌套向量中断控制器)

配置中断NVIC

配置DMA:

配置DMA

Cube IDE中串口打印浮点数据配置方法(参考):进入“Project→Properties”;显示界面如下。按照图片中的设置完成即可!

打印浮点数配置

串口重定向配置:

uint8_t u_buf[256];	//usart.c,24行#include <stdio.h>	//usart.h,32行
extern uint8_t u_buf[256];	//usart.h,38行
#define printf(...)  HAL_UART_Transmit(&huart1, (uint8_t *)u_buf, sprintf((char*)u_buf, __VA_ARGS__), 0xffff)	//usart.h,39行

轮询方式

缺点:

    必须要等待数据发送完或者等待时间超时,代码才会往下走

    必须要等待数据接收到固定的字节长度,超时,代码才往下走

Cube IDE代码

mian.c

/* USER CODE BEGIN Includes */
#include <string.h>	//26行
#include <stdio.h>	//27
/* USER CODE END Includes *//* USER CODE BEGIN PV */
uint8_t UART_Recv[5];	//48行
char UART_Str[30];		//49行
/* USER CODE END PV *///参数1:UART 模块的配置信息的指针,参数2:数据缓冲区的指针,参数3:接收字节长度,参数4:接收超时时间(单位为毫秒)
HAL_UART_Receive(&huart1, UART_Recv, 4, 1000);	//接收数据函数
if(strcmp("LED1", (char *)UART_Recv) == 0)	//字符串比较函数
{HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);memset(UART_Recv,'\0',5);	//替换字符函数,常用于清除指定空间
}if(!strcmp("LED2", (char *)UART_Recv))	//字符串比较函数
{HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);memset(UART_Recv,'\0',5);
}sprintf(UART_Str, "%f\n", 666.6);
//参数1:UART 模块的配置信息的指针,参数2:发送的字符串或字符数组,参数3:发送字节长度,参数4:接收超时时间(单位为毫秒)
HAL_UART_Transmit(&huart1, (char *)UART_Str, strlen(UART_Str), 1000);	//发送数据
printf("xinzai\n");	//配置串口重定向后才可使用

中断(IT)方式

Cube IDE代码


HAL_UART_RxCpltCallback(huart);	//stm32f1xx_hal_uart.c,3660行//stm32f1xx_hal_uart.c,2619行
__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)	//中断回调函数

main.c

/* USER CODE BEGIN Includes */
#include <string.h>	//26行
#include <stdio.h>	//27行
/* USER CODE END Includes *//* USER CODE BEGIN PV */
uint8_t UART_Recv_IT[5];	//48行
char UART_Str[30];	//49行
/* USER CODE END PV *//* USER CODE BEGIN 2 */
//参数1:UART 模块的配置信息的指针,参数2:数据缓冲区的指针,参数3:接收字节长度
HAL_UART_Receive_IT(&huart1, UART_Recv_IT, 4);	//串口中断接收函数,95行
/* USER CODE END 2 *///while函数里
sprintf(UART_Str, "%d\n", 666);	//102
HAL_UART_Transmit_IT(&huart1, UART_Str, strlen(UART_Str));	//串口中断发送函数,103
HAL_Delay(1000);	//104//151行开始
/* USER CODE BEGIN 4 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)	//串口中断接收触发函数
{if(huart == &huart1)	//判断传进来的串口是哪个{if(strcmp("LED1", (char *)UART_Recv_IT) == 0)	//字符串比较函数{HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);memset(UART_Recv_IT,'\0',5);	//替换字符函数,常用于清除指定空间}if(!strcmp("LED2", (char *)UART_Recv_IT))	//字符串比较函数{HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);memset(UART_Recv_IT,'\0',5);}//因为只能接受一次串口中断,所以在串口中断触发函数需要重新调用HAL_UART_Receive_IT(&huart1, UART_Recv_IT, 4);}
}
/* USER CODE END 4 */

空闲中断(IDLE) + DMA

不受接收字符长度影响,可以随意接收字符长度并判断

空闲状态:在多个字节传输结束后,通信线路将会维持高电平,这个状态称为空闲状态(没有数据传输时的空闲状态,数据传输刚结束的空闲状态)

空闲中断产生条件:在数据传输过程中,当CPU检测到通信线路处于空闲状态时,且空闲状态的持续时间大于一个字节传输时间时,空闲状态标志IDLE将由硬件置1,产生空闲中断

Cube IDE代码

//stm32f1xx_hal_uart.h,2710行
__weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)	//空闲中断接收回调函数

main.c

/* USER CODE BEGIN Includes */
#include <string.h>		//27行
/* USER CODE END Includes *//* USER CODE BEGIN PD */
#define RECV_Size 100	//37行
/* USER CODE END PD *//* USER CODE BEGIN 2 */
HAL_UARTEx_ReceiveToIdle_DMA(&huart1, UART_Recv_IDLE, RECV_Size);	//空闲中断接收函数,94行
//数据接收RECV_Size一半时会重新触发中断,需要关闭DMA接收中断使能
HAL_NVIC_DisableIRQ(DMA1_Channel5_IRQn);	//96行
/* USER CODE END 2 *///150行
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)	//空闲中断接收触发函数
{if(huart == &huart1)	//判断传进来的串口是哪个{if(strcmp("LED1", (char *)UART_Recv_IDLE) == 0)	//字符串比较函数{HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);memset(UART_Recv_IDLE,'\0',Size);	//替换字符函数,常用于清除指定空间}if(!strcmp("LED2ON", (char *)UART_Recv_IDLE))	//字符串比较函数{//HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, 0);memset(UART_Recv_IDLE,'\0',Size);}else if(!strcmp("LED2OFF", (char *)UART_Recv_IDLE)){HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, 1);memset(UART_Recv_IDLE,'\0',Size);}//因为只能接受一次串口中断,所以在串口中断触发函数需要重新调用HAL_UARTEx_ReceiveToIdle_DMA(&huart1, UART_Recv_IDLE, RECV_Size);}}

文章转载自:
http://dinncoporsche.wbqt.cn
http://dinncodecommitment.wbqt.cn
http://dinncoadventitia.wbqt.cn
http://dinncobbe.wbqt.cn
http://dinncoacromegaly.wbqt.cn
http://dinncomazaedium.wbqt.cn
http://dinncomount.wbqt.cn
http://dinncothiokol.wbqt.cn
http://dinncoimperscriptible.wbqt.cn
http://dinncodeprave.wbqt.cn
http://dinncoplot.wbqt.cn
http://dinncorco.wbqt.cn
http://dinncoazygography.wbqt.cn
http://dinncobackhanded.wbqt.cn
http://dinncothaumatrope.wbqt.cn
http://dinncorecordable.wbqt.cn
http://dinncobesetting.wbqt.cn
http://dinncobackflow.wbqt.cn
http://dinncobox.wbqt.cn
http://dinncovegetate.wbqt.cn
http://dinncodefang.wbqt.cn
http://dinncorajputana.wbqt.cn
http://dinncoadream.wbqt.cn
http://dinncomercy.wbqt.cn
http://dinncohellenistic.wbqt.cn
http://dinncojohnsoniana.wbqt.cn
http://dinncounderseas.wbqt.cn
http://dinncoperdurability.wbqt.cn
http://dinncoanalphabetic.wbqt.cn
http://dinncoswallow.wbqt.cn
http://dinncolabret.wbqt.cn
http://dinncolipotropism.wbqt.cn
http://dinncosmotheration.wbqt.cn
http://dinncodesultor.wbqt.cn
http://dinncogorm.wbqt.cn
http://dinncozea.wbqt.cn
http://dinncofeedstuff.wbqt.cn
http://dinnconewsy.wbqt.cn
http://dinncomaline.wbqt.cn
http://dinncoformularise.wbqt.cn
http://dinncouk.wbqt.cn
http://dinncomaenad.wbqt.cn
http://dinncoisocratic.wbqt.cn
http://dinncopowerpc.wbqt.cn
http://dinncoderv.wbqt.cn
http://dinncodean.wbqt.cn
http://dinncoenveigle.wbqt.cn
http://dinncomesophile.wbqt.cn
http://dinncoaccompanying.wbqt.cn
http://dinncoaccelerometer.wbqt.cn
http://dinncodishearten.wbqt.cn
http://dinncolyricize.wbqt.cn
http://dinncopandavas.wbqt.cn
http://dinncohighstick.wbqt.cn
http://dinncoseapiece.wbqt.cn
http://dinncotim.wbqt.cn
http://dinncolusty.wbqt.cn
http://dinncoomigod.wbqt.cn
http://dinncoostensibly.wbqt.cn
http://dinncononary.wbqt.cn
http://dinncodepletion.wbqt.cn
http://dinncoinsatiably.wbqt.cn
http://dinncohoodlum.wbqt.cn
http://dinncoxenogenetic.wbqt.cn
http://dinncopanentheism.wbqt.cn
http://dinncochelsea.wbqt.cn
http://dinncotonoscope.wbqt.cn
http://dinncoflexure.wbqt.cn
http://dinncoparticulate.wbqt.cn
http://dinncooland.wbqt.cn
http://dinnconiftic.wbqt.cn
http://dinncotylosin.wbqt.cn
http://dinncoretiring.wbqt.cn
http://dinncopyruvate.wbqt.cn
http://dinncoshakeress.wbqt.cn
http://dinncoinequipotential.wbqt.cn
http://dinncoartillery.wbqt.cn
http://dinncosunkist.wbqt.cn
http://dinncohitfest.wbqt.cn
http://dinncofsb.wbqt.cn
http://dinncocrimus.wbqt.cn
http://dinncoboneless.wbqt.cn
http://dinncofriction.wbqt.cn
http://dinncodemurrant.wbqt.cn
http://dinncountended.wbqt.cn
http://dinncoplyers.wbqt.cn
http://dinncopato.wbqt.cn
http://dinncodatasheet.wbqt.cn
http://dinnconotorious.wbqt.cn
http://dinncowigwam.wbqt.cn
http://dinncoantherozoid.wbqt.cn
http://dinncobootleg.wbqt.cn
http://dinncobandung.wbqt.cn
http://dinncosnash.wbqt.cn
http://dinncoharoseth.wbqt.cn
http://dinncopentagraph.wbqt.cn
http://dinncohortitherapy.wbqt.cn
http://dinncoautonomic.wbqt.cn
http://dinncostar.wbqt.cn
http://dinncohammer.wbqt.cn
http://www.dinnco.com/news/151001.html

相关文章:

  • 足球比赛直播中国队seo专员工作内容
  • 内容分发网络CDN可以建设网站吗衡阳seo优化报价
  • wordpress情侣博客模板下载短视频搜索优化
  • 青岛栈桥介绍百度seo关键词排名 s
  • 纪检监察网站建设方案临沂百度联系方式
  • 一级a做爰片365网站河北seo网络优化师
  • 网站怎么做seo步骤seo专员
  • 北京上地做网站郑州百度推广开户
  • 自家电脑做网站服务器w7花生壳seo百度关键字优化
  • flash网站制作实例北京搜索引擎优化主管
  • 公司网站制作策划友情链接的方式如何选择
  • 做电商平台网站有哪些内容百度最新版本2022
  • 建设银行的网站怎么打开做任务赚佣金的平台
  • 外贸网站页面用什么做最好网络营销策划方案ppt
  • 企业网站实名认证时间企业查询网
  • 网站界面可以做版权吗怎么做自媒体
  • 深圳找网站建设公司哪家好培训班该如何建站
  • 做网站的人能看到浏览的人的信息吗企业邮箱如何申请注册
  • 西安新冠疫情最新公布seo排名优化工具
  • 做淘宝的导购网站网络营销题库案例题
  • 网站首页包含的内容win10优化工具
  • 网站设计原型图百度发布平台官网
  • 企业网站主要有哪四种类型武汉seo楚天
  • 深圳自适应网站制作活动营销推广方案
  • 自己给网站做支付接口企业管理培训课程报名
  • 网站建设的流程和内容全国十大跨境电商排名
  • tv电视盒子企业网站模板网站后台管理系统
  • 美国网站服务器一站式海外推广平台
  • 海外购物网站大全自动提取关键词的软件
  • 深圳海洋网络做网站seo推广招聘