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

宁波企业制作网站网页网站开发大概多少钱

宁波企业制作网站,网页网站开发大概多少钱,如何创建一个新网站,wordpress 空白主题如ADC、SPI、I2C、TIM等使用STM32 HAL库时的中断函数调用方式和UART非常类似,都有底层直接使能中断和上层库函数管理两种方式。下面详细说明几种典型外设: 一、ADC外设 (1)直接使能中断(底层控制)&#xf…

如ADC、SPI、I2C、TIM等使用STM32 HAL库时的中断函数调用方式和UART非常类似,都有底层直接使能中断和上层库函数管理两种方式。下面详细说明几种典型外设:


一、ADC外设

(1)直接使能中断(底层控制):

只需调用一次,一直有效。

// 开启ADC转换完成中断
__HAL_ADC_ENABLE_IT(&hadc1, ADC_IT_EOC);// ADC IRQ中断函数(stm32f1xx_it.c)
void ADC1_IRQHandler(void)
{if(__HAL_ADC_GET_FLAG(&hadc1, ADC_FLAG_EOC)){uint16_t adc_value = HAL_ADC_GetValue(&hadc1);  // 手动读取ADC数据__HAL_ADC_CLEAR_FLAG(&hadc1, ADC_FLAG_EOC);     // 清除标志位}
}

(2)使用HAL库中断(库函数控制):

一般调用一次即启动一次ADC转换,中断每次触发后自动关闭,需再次调用。

// 启动一次ADC中断转换
HAL_ADC_Start_IT(&hadc1);// 中断回调函数(用户实现)
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{uint16_t adc_value = HAL_ADC_GetValue(hadc);// 处理数据...HAL_ADC_Start_IT(hadc); // 再次启动中断以实现连续采样
}// ADC中断服务函数(自动调用回调)
void ADC1_IRQHandler(void)
{HAL_ADC_IRQHandler(&hadc1);
}

二、SPI外设

(1)直接使能中断(底层控制):

通常只调用一次保持长期有效。

// 启用SPI接收缓冲区非空中断
__HAL_SPI_ENABLE_IT(&hspi1, SPI_IT_RXNE);// SPI中断函数
void SPI1_IRQHandler(void)
{if(__HAL_SPI_GET_FLAG(&hspi1, SPI_FLAG_RXNE)){uint8_t data = *(__IO uint8_t *)&hspi1.Instance->DR; // 手动读取数据寄存器// 数据处理}
}

(2)使用HAL库中断(库函数控制):

需要在每次传输完成后再次调用。

uint8_t rx_data[10];
HAL_SPI_Receive_IT(&hspi1, rx_data, 10); // 开启一次接收// 回调函数
void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi)
{// 接收完成处理HAL_SPI_Receive_IT(hspi, rx_data, 10); // 再次调用以连续接收
}// SPI中断函数
void SPI1_IRQHandler(void)
{HAL_SPI_IRQHandler(&hspi1);
}

三、I2C外设

(1)直接使能中断(底层控制):

使能一次即可长期有效,但需手动处理通信时序(不推荐新手使用)。

// 启用I2C接收中断
__HAL_I2C_ENABLE_IT(&hi2c1, I2C_IT_RXNE);// I2C中断函数
void I2C1_EV_IRQHandler(void)
{if(__HAL_I2C_GET_FLAG(&hi2c1, I2C_FLAG_RXNE)){uint8_t data = hi2c1.Instance->DR; // 手动读取数据寄存器// 数据处理}
}

(2)使用HAL库中断(库函数控制):

每次传输完成后需要再次调用。

uint8_t rx_data[10];
HAL_I2C_Slave_Receive_IT(&hi2c1, rx_data, 10); // 开启一次接收// 回调函数
void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
{// 数据处理...HAL_I2C_Slave_Receive_IT(hi2c, rx_data, 10); // 再次调用
}// I2C中断函数
void I2C1_EV_IRQHandler(void)
{HAL_I2C_EV_IRQHandler(&hi2c1);
}

四、TIM定时器外设

(1)直接使能中断(底层控制):

调用一次后自动循环触发中断(只要计数器开启)。

// 使能更新中断(溢出中断)
__HAL_TIM_ENABLE_IT(&htim1, TIM_IT_UPDATE);
HAL_TIM_Base_Start(&htim1); // 启动定时器计数// 定时器中断函数
void TIM1_UP_IRQHandler(void)
{if(__HAL_TIM_GET_FLAG(&htim1, TIM_FLAG_UPDATE)){__HAL_TIM_CLEAR_FLAG(&htim1, TIM_FLAG_UPDATE);// 定时器溢出处理}
}

(2)使用HAL库中断(库函数控制):

调用一次后自动循环触发(推荐使用,使用简单)。

// 启动TIM定时器中断模式
HAL_TIM_Base_Start_IT(&htim1);// 回调函数(用户实现)
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance == TIM1){// 定时处理}
}// TIM中断函数
void TIM1_UP_IRQHandler(void)
{HAL_TIM_IRQHandler(&htim1);
}

不同外设两种方式的共同规律总结:

方式中断生效时长数据处理方式再次调用需求
底层控制 (__HAL_xxx_ENABLE_IT)持续有效(一次调用长期有效)用户手动读取寄存器一般无需
库函数控制 (HAL_xxx_IT)一次有效(传输结束自动关闭)库自动管理缓冲区,使用回调函数必须重复调用

推荐方式:

  • 一般应用场景下,推荐使用HAL_xxx_IT(易用、稳定)。
  • 对于底层、实时要求严格、或者对数据有精细控制需求的场景,才考虑使用__HAL_xxx_ENABLE_IT手动管理。

文章转载自:

http://d3spmG5A.fdjwL.cn
http://6xFtm50y.fdjwL.cn
http://9W0f3zwf.fdjwL.cn
http://GLME6tLi.fdjwL.cn
http://t7jrrGBG.fdjwL.cn
http://heiQJnYP.fdjwL.cn
http://qNwNjA0A.fdjwL.cn
http://RTzisSbG.fdjwL.cn
http://Huq4hZCh.fdjwL.cn
http://0trlk4JX.fdjwL.cn
http://4bPYHhM1.fdjwL.cn
http://MIj3VkBN.fdjwL.cn
http://KAJJwsPT.fdjwL.cn
http://LGDV1dvU.fdjwL.cn
http://Or9MOVvd.fdjwL.cn
http://ItpotrVr.fdjwL.cn
http://s0DS99Jz.fdjwL.cn
http://yMpppcvh.fdjwL.cn
http://VJwZp4lI.fdjwL.cn
http://uC7swOgQ.fdjwL.cn
http://BBP7cpB3.fdjwL.cn
http://s7pkD0oH.fdjwL.cn
http://n7INemgE.fdjwL.cn
http://OW8EEmSK.fdjwL.cn
http://aQLMcEGG.fdjwL.cn
http://Z05k5CuA.fdjwL.cn
http://HZy1f4BK.fdjwL.cn
http://IYhf6VvY.fdjwL.cn
http://2Z2TkHae.fdjwL.cn
http://g4N3CNNv.fdjwL.cn
http://www.dtcms.com/wzjs/706262.html

相关文章:

  • 深圳做网站和视频宣传机构哪个平台可以接推广任务
  • 东莞市建设局网站首页个人网站的设计与实现摘要
  • 替别人做网站一个公司可以做多少网站
  • 网站背景如何做网站信息服务费怎么做分录
  • 给军方做网站套模板行不行潍坊网站做的好的公司
  • 用摄像头直播网站怎么做做网站销售的
  • 广东省住房和建设局网站wordpress aff
  • 集团公司做网站的好处有什么芜湖推广公司
  • 上海兴业建设有限公司网站固始网站建设
  • 深圳医疗网站建设报价安徽省建设工程执业信息网
  • 德泰诺网站建设牡丹江地区做网站的公司
  • 网站运营者seo百度关键词排名
  • 什么网站出项目找人做wordpress中文模板
  • 注册物业公司需要什么手续和条件seo全网推广
  • 扬州做企业网站百度快速收录网站
  • 网站设计公司种类学校学不到网站建设
  • 惠州企业建站模板什么是网站开发与建设
  • 有源码就可以自己做H5网站吗外贸网站如何做外链
  • 长沙网站优化推广方案汕头个人网站推广建设
  • 珠海建设网站外贸seo软件
  • 网站建设找什么公司好漯河北京网站建设公司
  • 怎样设置网站关键词dede 分类信息网站 模板
  • 淄博论坛网站建设网站更换备案
  • 鄂州市建设局网站景安服务器安装wordpress
  • 靖江做网站的佛山企业网站建设公司推荐
  • 买了域名如何做网站赣州房产网
  • 镇江网站推广排名北京中小企业公司名单
  • 怎么做网站子页软件开发自学入门教程
  • 农业门户网站建设目标目前做外贸的网站哪个比较好
  • 无需下载直接进入的网站的代码贵州讯玛网站建设