不含stm32 底层的代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
MyStm32Code/DOC/01_generatecode.md

68 lines
1.4 KiB

### CubeMX HAL
-------------
#### 开始项目
##### 1、 选择芯片类型
stm32F103ZET6 stm32F407ZGT6
### 2、 sys
定时器: Systick Tim
一般sysstick用于OS
##### 3、 RCC
默认内部时钟,大多情况下配置为外部时钟,并设置频率
```C
__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
/* Configure the SysTick to have interrupt in 1ms time basis*/
if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
{
return HAL_ERROR;
}
```
1000U 1ms 中断
500U 2ms 中断
修改中断函数 Core\Src\stm32f1xx_it.c
定义累加值
uint16_t systime;
```C
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
systime++;
if (systime>1000)
{
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
systime=0;
}
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
HAL_SYSTICK_IRQHandler();
/* USER CODE END SysTick_IRQn 1 */
}
```
以上程序可以烧录, 或通过定时器实现
设置定时器:
时钟还是8MHz,经过8分频后变成1MHz,即1微妙,然后累加值设置为500,则500微妙TIM3定时器将溢出执行一次中断,接下来我们先去使能TIM3溢出中断
Core\Src\stm32f1xx_it.c TIM3_IRQHandle()
然后打开定时器中断
##### 4、 GPIO
HAL_GPIO_TogglePin
##### 5、 UART
##### 6、 makefile
arm-none-eabi-gcc -v