一.hal库实现
-
(1)打开STM32CubeMX,创建新项目(如下图红框,此时我已经建立完项目,点击如图中1的历史项目)
-
(2)选择STM32F103C8开发板
-
(3)如下图选择高速时钟
-
(4)设置USART2如下图
-
(5)点击Clock Configuration选择HSE和PLLCLK
-
(6)设置中断
-
(7)生成代码
-
(8)在main.c中的while循环中添加代码
char data[]="hello windows!\n";
HAL_UART_Transmit(&huart2, (uint8_t *)data, 15, 0xffff);
//高电平点亮A12
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_SET);
HAL_Delay(100);
//低电平熄灭A12
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_RESET);
HAL_Delay(900);
-
(9)设置参数
-
(10)烧录
-
(11)串口调试,rxd接A2,txd接A3,boot0置0,boot1置1
-
注:烧录后要先断电,rxd接A2,txd接A3,boot0置0,boot1置1,再通电。串口调试助手设置波特率为115200,校验位无,数据位为8,停止位为1
二.汇编实现
-
(1)新建项目,选择STM32F103C8芯片
-
(2)新建.s文件
-
(3)在文件中写入如下代码
;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_AHBE