1.各类库的浅比较
1)操作寄存器,设置PB0为高电平
GPIOB->BSRR = 0x0001;
2)使用标准库,设置PB0 为高电平
GPIO_SetBits (GPIOB,GPIO_Pin_0);
3)使用HAL库,设置PB0 为高电平
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
以上的实质都是通过操作寄存器来实现,给对应IO口写高电平,HAL库对新手小白很友好,而且相对直观,写GPIOB的Pin0,GPIO_PIN_SET 为写入高电平。GPIO_PIN_RESET为写入低电平。
2.HAL库
ST官方推出的最新一种STM32设置和初始化C代码的生成器。
1)可直观选择不同型号的STM32微控制器,配置微控制器,处理引脚冲突,动态设置确定时钟树,及各外围器件的初始化等。
2)串口发送和接收函数
A.串口发送字符
/*普通发送*/
char *Str="Initial OK\r\n";
HAL_UART_Transmit(&huart1,(uint8_t *)Str,strlen(Str) ,100);
结果:
//串口中断形式
char *Str="Initial OK\r\n";
HAL_UART_Transmit(&huart1,(uint8_t *)Str,strlen(Str) ,100);
HAL_UART_Transmit_IT(&huart1,(uint8_t*)Str,strlen(Str) );
实验结果:
B.串口发送数据
uint8_t data[3] ={0x55,0x01,0x00};
HAL_UART_Transmit (&huart1 ,(uint8_t *)data,len,100);
实验现象:
串口接收到:0x55 0x01 0x00