stm32CubeMX(Hal库)流水灯和stm32的串口通信

目录

流水灯点亮

1.建立工程

2. 选择STM32F103C8芯片

3.修改debug

 4.修改HSI 

5.设置时钟RCC

6.GPIO output level 

 7.建立项目

8.烧录

9.结果 

 串口通信

创建新工程

添加汇编代码

编译生成hex文件

烧录与接受

keil5观测波形  

 1.环境设置

 2.观察波形

 串口调试分析波形

观察波形 

 总结

参考


流水灯点亮

1.建立工程

2. 选择STM32F103C8芯片

3.修改debug

 4.修改HSI 

将system clock mux从HSI设为PLLOCK

5.设置时钟RCC

在High Speed Clock选择Crystal/Ceramic Resonator 右边的引脚图选择自己选择芯片的引脚连线,我选择的是PA12,PB1,PC14,并且选择GPIO_OUT

 

6.GPIO output level 

 GPIO output level选择high

 7.建立项目

在Toolchain/IDE选择MDK-ARM,然后进入code generate界面,选择生成初始化.c/.h文件,后面点击generate code,然后直接打开文件。

 

 打开直接生成的代码

 在while循环中加入亮灯熄灯代码,可直接调用亮灯熄灯函数,在stm32cubeMX已生成,延时函数也自动生成,500刚好对应0.5s延迟,1000则为1s  

        HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_SET);//PA12熄灯
		HAL_Delay(500);//延时0.5s
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_RESET);//PA12亮灯
		HAL_Delay(500);//延时0.5s		
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);//PB1熄灯
		HAL_Delay(500);//延时0.5s
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);//PB1亮灯
		HAL_Delay(500);//延时0.5s
		
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_SET);//PC14熄灯
		HAL_Delay(500);//延时0.5s
		
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_RESET);//PC14亮灯
		HAL_Delay(500);//延时0.5s

8.烧录

编译无错,然后生成hex文件进行烧录。

通电下将boot0置0,然后再次通电后可运行。 

9.结果 

 

 串口通信

创建新工程

 汇编语言不需要添加CMSIS和Device的starup 和core

 

添加汇编代码

;RCC寄存器地址映像             
RCC_BASE            EQU    0x40021000 
RCC_CR              EQU    (RCC_BASE + 0x00) 
RCC_CFGR            EQU    (RCC_BASE + 0x04) 
RCC_CIR             EQU    (RCC_BASE + 0x08) 
RCC_APB2RSTR        EQU    (RCC_BASE + 0x0C) 
RCC_APB1RSTR        EQU    (RCC_BASE + 0x10) 
RCC_AHBENR          EQU    (RCC_BASE + 0x14) 
RCC_APB2ENR         EQU    (RCC_BASE + 0x18) 
RCC_APB1ENR         EQU    (RCC_BASE + 0x1C) 
RCC_BDCR            EQU    (RCC_BASE + 0x20) 
RCC_CSR             EQU    (RCC_BASE + 0x24) 
                              
;AFIO寄存器地址映像            
AFIO_BASE           EQU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值