做不完的事情...

小赵(化名)最近遇上了难题, 他理解不了事务的概念。

早晨上班,在公共汽车上也一直思考这个问题。300路上班时间很挤,这时一个衣着前卫、凹凸有致的妙龄女子被挤到了小赵的身前。小赵无可抗拒地停止了对专业问题的思考,而被紧紧靠在身上的这团香艳弄得血脉贲张。小赵难以克制地借着公车的一停一起,[][][][][](此处略去100字)。对于小赵的行为,妙龄女子显示了传统女性忍耐的美德,小赵的行为更加得寸进尺。

怎奈就到站了,小赵只好下车。车门一开,刚才还温顺的女子一脚把小赵踹下去,嘴里狠狠地说:“做不完的事情就不要做!”

小赵爬起来,半晌说出一句话,“哦, 原来事务是这样的。”

事务就是这样一组操作,如果所有的操作都完成,那么整个事务完成,如果有其中一个没完成,那么整个事务就都取消。

--- 谁让你不提交呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
引用[1]:上一节看手册以后,你或许已经明白怎么配置一个GPIO接口让它实现输入输出的各种功能了。但是如果我问起你:如果要让GPIOA端口的P0和P1配置成推挽输出10MHz模式,你该怎么,你会些什么? 绝大多数人事情应该还是翻开手册里GPIO_CRL的寄存器定义,然后照着手册编程。GPIO外设的功能比较简单,需要配置的功能不算太多,这么没什么难度。但有些外设的配置寄存器有许许多多控制位,比如下面这位: 这是串口通信外设的控制寄存器1(对没错,还有个控制寄存器2),里面的14个有效位都与通信的各种规则和状态密切相关,通过查手册一位一位地改显然有点不太经济且不甚直观。 标准固件库函数就是为这个而生的。ST官方将常用的对外设的操作和外设的各种状态封装成可读性更高的函数和结构供用户使用。我们就着GPIIO的库函数来看看,这玩意到底有什么魔力。 请从固件库文件夹里找出stm32f10x_gpio.h,stm32f10x_gpio.c和stm32f10x_rcc.h、stm32f10x_rcc.c四个文件,添加到寄存器编程的模板里。 并且在你的main里包含两个.h。打开这gpio的两个文件,里面虽然看着纷繁,但核心思路我们一讲便通。 固件库版的外设初始化 。 引用[2]:打开stm32f10x_gpio.h,用Ctrl F找到“GPIO_Exported_Functions”,其下便是所有的gpio库函数了。 GPIO_Init函数就是初始化外设使用的函数了。有一个形参类型“GPIO_InitTypeDef”我们没有见过,你可以在上边右键单击后选择“Go to Defnition”查看它的内容: typedef struct { uint16_t GPIO_Pin; /*!< Specifies the GPIO pins to be configured. This parameter can be any value of @ref GPIO_pins_define */ GPIOSpeed_TypeDef GPIO_Speed; /*!< Specifies the speed for the selected pins. This parameter can be a value of @ref GPIOSpeed_TypeDef */ GPIOMode_TypeDef GPIO_Mode; /*!< Specifies the operating mode for the selected pins. This parameter can be a value of @ref GPIOMode_TypeDef */ }GPIO_InitTypeDef; 。 引用[3]:void Button_Config(void){ GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOD clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); /* Configure PD.03, PD.04 as output push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure);} 。 问题:stm32f10x_gpio.h文件中有什么内容? 回答: 在stm32f10x_gpio.h文件中,我们可以找到"GPIO_Exported_Functions",其下是所有的GPIO库函数。其中,GPIO_Init函数是用于初始化外设的函数。在该文件中还定义了一个名为GPIO_InitTypeDef的结构体,该结构体包含了GPIO_Pin、GPIO_Speed和GPIO_Mode等参数,用于配置GPIO引脚的功能和模式。[2]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值