[嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集
先上公式:
Tout = ((arr+1)*(psc+1))/Tclk ;
其中:
Tclk:定时器的输入时钟频率(单位MHZ)
Tout:定时器溢出时间(单位为s)
例如:
TIM1_Init();
TIM_Period = arr; eg;9
TIM_Prescaler = psc; eg:7199
以STM32F103ZET6为例,其时钟工作频率为72MHZ,即:
Tout = ((9+1)×(7199+1))/72000000 = 0.001s = 1ms
#include "sys.h"
#include "stm32f10x_conf.h"
#include "delay.h"
#include "led.h"
#include "usart.h"
#include "tim.h"
#include <stdint.h>
#include <stdio.h>
uint32_t cnt = 0;
void TIM1_UP_IRQHandler(void) {
cnt++;
if (cnt >= 100000) { // 实际计数1000次,由于仿真时间不准确,所以这里写100000
cnt = 0;
LED = !LED;
}
}
int main() {
// LED初始化
LED_Init();
//串口初始化
uart_init(115200);
// 初始化定时器1
TIM1_Init();
while(1) {
}
}
todo
todo