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

外贸网站 站长工具发布培训的免费网站模板下载

外贸网站 站长工具,发布培训的免费网站模板下载,苏州网站建设优化过哦,sem竞价萌新的STM32学习–非正点原子视频的中断设计思路 我们分析而言 我们对于PA0 的设计就从此而来 对于边沿触发的选择我们已经有所了解了 我们下拉#xff0c;但是当我们摁下开关的时候 从0到1 导通了 所以这个是下拉 上升沿触发 而对于KEY0 我们摁下是使得电路从原来悬空高阻态…萌新的STM32学习–非正点原子视频的中断设计思路 我们分析而言 我们对于PA0 的设计就从此而来 对于边沿触发的选择我们已经有所了解了 我们下拉但是当我们摁下开关的时候 从0到1 导通了 所以这个是下拉 上升沿触发 而对于KEY0 我们摁下是使得电路从原来悬空高阻态到地就是0 所以是下降沿触发 那么对于何种模式有很多人可能不理解 我们这么分析 这里在摁下前是什么我们不知道但是摁下了电流通过了从高到低 所以我们选择给PA0一个开始接入低 也就是下拉模式 而对于这个我们分析在摁下之后是不是要把1连接到低 那么对于原来的PE4 就是上拉模式 原来上拉到1 那么摁下就是从1到0 就是下降沿触发合情合理 关于代码部分我们的处理方式是这样的 因为我们用的是HAL库 所以怎么说呢 HAL库把很多功能集成封装起来了对我们设计都是颇有帮助的 我们在最先的使用中会先注意对外设进行初始化 因为很多都是建立在GPIO外设上的操作 ok第一步先对GPIO进行初始化 我们最先使用HAL_GPIO_Init void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) 写是这么写的 一共分为了2部分 前面说的是GPIO_TypeDef *GPIOx x就是表示我们可以在其中填入其他类型 比如说是GPIOA 等等 我们用到哪个就写入那个 不要管其他了 因为在HAL库的其他地方已经帮我们做完了基本的定义了  第二个是GPIO_InitTypeDef GPIO_Init 这是一种关于GPIO_InitTypeDef 类型定义的 这个结构体包括了 typedef struct{ uint32_t Pin; / 引脚号 / uint32_t Mode; / 模式设置 / uint32_t Pull; / 上拉下拉设置 / uint32_t Speed; / 速度设置 */} GPIO_InitTypeDef; 这是关于这个类型的叙述 我们就可以设置GPIO相应管脚的各项参数 这其实是基本的 他会把很多操作都封装起来 让你不直接接触寄存器而直接调用 其实我觉得正点原子在这方面既做的好又做的不好 课程之间并没有很爽快的那种完美连接  就像是你之前介绍完寄存器 然后你实际用起来的时候还是把寄存器封装成一个个模块用的 那当然了我们直接用函数多方便 就是总感觉这其中差了点什么连接块 让人使用起来好不舒服 这是我的个人胡乱猜测 通过外部中断的方式让开发板上的三个独立按键控制 LED 灯KEY_UP 控制 LED0 翻转KEY1 控制 LED1 翻转KEY0 控制 LED0 和 LED1 翻转。 分为红 蓝 黄 三根线 红色部分和 蓝色部分是我们 之前就已经实现过的 而对于黄色部分在此处是一种新的定义方式 目的是为了更好的连接EXTI为后续做准备 接下来展示的是exti.c 对于我们来说黄色的实现 是上面两次实验都有的 就是先把GPIO初始化再先设置 然后接下来的是新实现的两部分我们细致分析一下 HAL_NVIC_SetPriority(KEY0_INT_IRQn, 0, 2); /* 抢占 0子优先级 2 / HAL_NVIC_EnableIRQ(KEY0_INT_IRQn); / 使能中断线 4 / HAL_NVIC_SetPriority(KEY1_INT_IRQn, 1, 2); / 抢占 1子优先级 2 / HAL_NVIC_EnableIRQ(KEY1_INT_IRQn); / 使能中断线 3 / HAL_NVIC_SetPriority(WKUP_INT_IRQn, 3, 2); / 抢占 2子优先级 2 / HAL_NVIC_EnableIRQ(WKUP_INT_IRQn); / 使能中断线 0 */ 它可以分为2部分一部分是 HAL_NVIC_SetPriority void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority,uint32_t SubPriority); 这里可以分为三部分 第一部分是设置 中断号 第二部分是抢占优先级 第三部分是响应优先级 中断号是来自IRQn_Type 定义的枚举类型 我们之前在下面定义的IRQn 其实有这方面的考虑 还有一部分是 HAL_NVIC_EnableIRQ 中断使能函数 所以分析下来是这样的 void EXTI4_IRQHandler(); 这是中断服务函数 你会发现所有的各个部分写法都是这样因为 所有的外部中断服务函数里都只调用了同样一个函数 HAL_GPIO_EXTI_IRQHandler该函数是外部中断共用入口函数函数内部会进行中断标志位清零并且调用中断处理共用回调函数 HAL_GPIO_EXTI_Callback。 在他的内部会自动带上通用回调函数 所以我们不必去考虑到底何时何地才会写入这个回调函数 只要简单的记住 在中断服务函数内部只要写2个就可以了 另外再写的回调函数 会在我中断服务函数里面的第一条全世界公用的HAL_GPIO_EXTI_IRQHandler 内部会自行调用 我们在前面中断函数的处理过程中都调用了 HAL_GPIO_EXTI_IRQHandler()这个接口它主要帮我们进行了寄存器操作清除了中断事件清除完中断源后调用中断回调函数HAL_GPIO_EXTI_Callback这个接口是一个__weak 的接口我们通过重新实现这个函数来实现真正的外部中断控制逻辑。在该函数内部通过判断 IO 引脚号来确定中断是来自哪个 IO 口也就是哪个中断线然后编写相应的控制逻辑。所以在该函数内部我们通过 switch 语句判断IO 口来源例如是来自 GPIO_PIN_0那么一定是来自 PA0因为中断线一次只能连接一个 IO口而三个 IO 口中引脚号为 0 的 IO 口只有 PA0所以中断线 0 一定是连接 PA0也就是外部中断由 PA0 触发。其他的引脚号的逻辑类似。 还算可以接收的水平 所以通用步骤 其实学了很长时间的中断 甚至是寄存器的用法 哪一个都不如直接用HAL库来的实在
http://www.yutouwan.com/news/281854/

相关文章:

  • 扬州网站建设小程序wordpress 5.0.2编辑器
  • 建设网站考证wordpress商城支付
  • 地方旅游网站怎么做seo优化对网店的推广的作用为
  • 电子商务网站开发原则六安市 网站集约化建设
  • 靖江有帮助做苏宁易购网站的公司吗知道网站是wp程序做的如何仿站
  • 企业可以在哪些网站做免费宣传awada wordpress
  • 内容展示类网站网站套餐网页
  • 哪里查询网站备案江苏省建设厅官方网站公式公告
  • 莆田自助建站软件黑客钓鱼网站的制作
  • 上国外网站dns想学淘宝美工去哪里学
  • 百度网站的建设网站统计插件
  • 网站建设属于高新技术收入吗莱芜网络小说作家
  • 网站属性设置wordpress换域名把家
  • 做网站法人拍照背景做空间的网站
  • wordpress网站变灰实体店做团购有那些网站
  • wordpress建站哪里好内部网站建设、
  • 江苏城乡建设厅网站微信营销网络营销方式
  • 晋城门户网站建设建设新闻博客类网站要多大空间
  • 校园微网站建设方案ppt模板做个网页价格多少
  • 企业网站怎样做可以搜索到做二手钢结构网站有哪些
  • 六类网线制作为什么要懂seo
  • 做动漫网站推荐 网页游戏
  • 深圳网站建设制作设计桔子建站是什么平台
  • 36kr网站用什么做的在百度做网站需要什么资料
  • 中国核工业华兴建设有限公司网站网页设计制作的流程
  • 网站如何做3d产品展示写作的网站有哪些
  • 自建手机网站怎么修改自己的网站
  • 钮奇网站建设找人做的网站 没登录口
  • 北京网站备案拍照的地点站长网站查询工具
  • 怎么制作自己的网站网站站长要会什么用