STM32L433CB

一、初始STM32

二、学习步骤

  (1)、学习过程中遇到的问题:
  、    ①使用J-link下载调试程序时,Keil找不到设备。
             答:可能是下载器出现了问题,之后在淘宝上购买了ST-LINK,连接成功,嘻嘻。
            
  
  (2)、代码::由于使用STM32CubeMX创建led工程,所以相应串口初始化工作由CubeMX完成,在此不再贴出,以下是点亮led灯的相应代码:
main.c:
      #include "main.h"
      #include "gpio.h"
      void SystemClock_Config(void);
      int main()
      {
            while(1)
            {
                HAL_GPIO_WritePin(GPIOB, U1U_Pin, GPIO_PIN_RESET);//继电器
		         RGB_Heart();
            }
      }
  

gpio.c:
   void RunLed(void)
{
	  HAL_GPIO_WritePin(RunLed_GPIO_Port, RunLed_Pin, GPIO_PIN_RESET);
	  HAL_Delay(1000);
	  HAL_GPIO_WritePin(RunLed_GPIO_Port, RunLed_Pin, GPIO_PIN_SET);
}

void RGB_led(uint8_t LEDX,uint8_t status)
{
	if(status == ON)
	{
		switch(LEDX)
		{
			case BLUE_LED:
				  HAL_GPIO_WritePin(GPIOB, BlueLed_Pin, GPIO_PIN_RESET);
			    break;
			case RED_LED:
				  HAL_GPIO_WritePin(GPIOB, RedLed_Pin, GPIO_PIN_RESET);
			    break;
			case GREE_LED:
				  HAL_GPIO_WritePin(GPIOB, GreeLed_Pin, GPIO_PIN_RESET);
			    break;
		}
	}
if(status == OFF)
{
	switch(LEDX)
	{
		case BLUE_LED:
			  HAL_GPIO_WritePin(GPIOB, BlueLed_Pin, GPIO_PIN_SET);
		    break;
		case RED_LED:
			  HAL_GPIO_WritePin(GPIOB, RedLed_Pin, GPIO_PIN_SET);
		    break;
		case GREE_LED:
			  HAL_GPIO_WritePin(GPIOB, GreeLed_Pin, GPIO_PIN_SET);
		    break;
	}
}

}

void RGB_Heart(void)
{
	    RunLed();
	    RGB_led(BLUE_LED,ON);
		  HAL_Delay(1000);
		  RGB_led(BLUE_LED,OFF);
		  
     RunLed();
    RGB_led(GREE_LED,ON);
	  HAL_Delay(1000);
	  RGB_led(GREE_LED,OFF);
     
    RunLed();
  RGB_led(RED_LED,ON);
	  HAL_Delay(1000);
	  RGB_led(RED_LED,OFF);		  

}

(3)、现象
LED灯蓝、绿、红交替出现。

2、串口通信学习与printf实现
(1)、串口用到9个pin:
Pin Name Dir Description
1 CD Carrier Detect :数据载波检测 DCD 8 数据载波检测 DCD
2 RXD Receive Data(常用): 接收数据 RXD 3 接收数据 RXD
3 TXD Transmit Data(常用):发送数据 TXD 2 发送数据 TXD
4 DTR Data Terminal Ready:数据终端准备 DTR 20 数据终端准备 DTR
5 GND System Ground(常用):信号地 GND 7 信号地 GND
6 DSR Data Set Ready:数据设备准备好DSR 6 数据设备准备好 DSR
7 RTS Request to Send:请求发送 RTS 4 请求发送 RTS
8 CTS Clear to Send:清除发送 CTS 5 清除发送 CTS
9 RI Ring Indicator:振铃指示 RI 22 振铃指示 RI
(2)、实现代码:

注意:串口以字符串的形式传输数据。

ustart.c:
 #ifdef __GNUC__
	#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
	#define PUTCHAR_PROTOTYPE int fputc(int ch,FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
		HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);     //输出打印至串口
		return ch;
}`

main.c:
  while (1)
  {
		printf("stm32L433TB6 trance debug.........\r\n");

  }

3、按键控制LED灯

中断按键进而控制led:
第一步:CubeMX配置控制led的gpio和控制按键的gpio;
第二步:打开配置好的工程,找到中断服务函数,之后再找到处理相应中断的回调函数,进行重新编写即可;

你可能感兴趣的:(STM32L433CB)