- 博客(9)
- 收藏
- 关注
原创 ADC(9)
ADC外部的16个通道在转换时分为规则通道和注入通道,由于ADC只使用一个通道来转换,这里不需要考虑规则通道的转换顺序和注入通道的转换顺序,这里我们选用通道转换顺序为1,第一个转换。ADC_InitStructure.ADC_ExternalTrigConv ,外部中断模式,参数有ADC_ExternalTrigConv_T1_CC3 ,ADC_ExternalTrigConv_None,这里用软件触发,不需要此功能;ADC_InitStructure.ADC_Mode,ADC模式选择。
2024-06-06 15:21:50
596
1
原创 串口发送(8)
USART_StopBits:停止位的位数,取值为USART_StopBits_1 ,USART_StopBits_0_5 USART_StopBits_2 , USART_StopBits_1_5 ,常用1位USART_StopBits_1。USART_Mode:发送接收模式使能,取值有USART_Mode_Rx,USART_Mode_Tx,由于这里只需要发送功能,选用USART_Mode_Tx。本次实验为串口发送实验,以下为常见的串行通讯协议。以下为串口的配置参数。占用引脚资源少,但是。
2024-06-06 14:10:39
439
原创 pwm呼吸灯(7)
这次实验选用GPIOA-8的灯,对应通道和定时器为APB2和TIM1,由于TIM1为高级定时器,需要额外加上TIM_CtrlPWMOutputs(TIM1,ENABLE)这句代码;gpio使用复用推挽输出(AF_PP),pwm选用高电平有效。代码如下pwm.c文件。
2024-05-27 18:20:22
316
原创 看门狗作业(6)
在这里取prv值为32, rlv 值为2500,那么就可以得到Tout=32*2500/40=2000ms, 看门狗的溢出时间就是2s.值得注意的是,由于独立看门狗的时钟系统是由一个12位递减计数器,所以rlv的值不能超过2^12,即4096.看门狗,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做喂狗,输出一般是连接到单片机.看门狗的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号.这次我们用独立看门狗来实现led灯的闪烁和停止.下面是没有喂狗的效果。
2024-05-27 17:40:41
300
原创 定时器中断(5)
系统时钟为72M,APB1为36M,分频系数为2,那么通用计时器的时钟为72;要实现500ms定时功能,取ARR=7199,PSC=4999;时间为500 000=(7199+1)(4999+1)/72;通用定时器可以向上计数、向下计数、向上向下双向计数模式,这里选择向上计数。最后要实现灯交替闪烁效果,在中断函数里添加两个灯状态转换的函数并在主函数将灯的初始状态一个设置为亮一个设置为灭。通用计时器分频因子为TIM_CKD_DIV1即无时钟分频,中断控制器部分参考按键控制灯的部分,代码如下。
2024-04-19 17:59:40
438
原创 systick(4)
Systick 是 STM32 的一个系统定时器,是一个 24 位的倒计数定时器,当计数到 0 时,将从 RELOAD 寄存器中自动重装载定时初值,开始新一轮计数。还需要在stm32f10x_it.c文件加入TimingDelay_Decrement();记得把原delay函数删掉,会造成定义重复,用这个好处是时间更精确。
2024-04-08 14:56:01
259
原创 外部中断(3)
进入nvic后选择响应优先级和抢占优先级的等级,由于我只需要一个中断,这里随便选个第二组,并按照组内限制填写数字(不过按钮1和2的中断通道貌似不能用|的方式写在一行里,我这里试过出现只能实现一个按钮功能的问题)。中断时序图如上 ,选择对应按键的gpio口的中断,由于要使用中断函数服务,这里选择中断模式,并选择下降沿触发(这里选哪个应该都行的吧)两个按钮对应的中断函数。
2024-04-06 18:29:23
206
1
原创 按钮控制灯(2)
加上了宏定义,看起来规范化了点(第一次搞了半天,我是屎山代码王。用标准库函数做宏函数不知道为什么无法使用,得直接调用寄存器,但这个也不会,只能在外面在定义函数了,控制灯的几个函数也是别人教我简化的,水平是很水的)按钮也一样,用宏定义做了解释便于修改,实现按一次开关对应灯就亮灭状态转换一次。还是之前的流水灯,但是稍做了修改。最后是主函数和效果图。
2024-03-31 16:33:58
263
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅