历史上的今天
今天是:2024年09月06日(星期五)
2019年09月06日 | stm32 通过串口控制led灯亮灭 并通过lcd显示led灯的亮灭状态
2019-09-06 来源:eefocus
#include "main.h"
#include "stm32f0xx_hal.h"
/* USER CODE BEGIN Includes */
#include "lcd.h"
/* USER CODE END Includes */
/* Private variables ---------------------------------------------------------*/
UART_HandleTypeDef huart1;
/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);
/* USER CODE BEGIN PFP */
/* Private function prototypes -----------------------------------------------*/
/* USER CODE END PFP */
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/**
* @brief The application entry point.
*
* @retval None
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
Lcd_Init();
Lcd_Clear(WHITE);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
Gui_DrawFont_GBK16(0, 0, BLACK, WHITE, "LED1 OFF");
Gui_DrawFont_GBK16(0, 25, BLACK, WHITE, "LED2 OFF");
Gui_DrawFont_GBK16(0, 50, BLACK, WHITE, "LED3 OFF");
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
uint8_t data = 0;
HAL_UART_Receive_IT(&huart1, &data, 1);
if(data == '1')
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_UART_Transmit(&huart1, &data, 1, 0);
Gui_DrawFont_GBK16(0, 0, BLACK, WHITE, "LED1 ON");
//HAL_Delay(500);
}
else if(data == '2')
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
HAL_UART_Transmit(&huart1, &data, 1, 0);
Gui_DrawFont_GBK16(0, 0, BLACK, WHITE, "LED1 OFF");
//HAL_Delay(500);
}
else if(data == '3')
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
HAL_UART_Transmit(&huart1, &data, 1, 0);
Gui_DrawFont_GBK16(0, 25, BLACK, WHITE, "LED2 ON");
//HAL_Delay(500);
}
else if(data == '4')
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
HAL_UART_Transmit(&huart1, &data, 1, 0);
Gui_DrawFont_GBK16(0, 25, BLACK, WHITE, "LED2 OFF");
//HAL_Delay(500);
}
else if(data == '5')
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);
HAL_UART_Transmit(&huart1, &data, 1, 0);
Gui_DrawFont_GBK16(0, 50, BLACK, WHITE, "LED3 ON");
//HAL_Delay(500);
}
else if(data == '6')
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET);
HAL_UART_Transmit(&huart1, &data, 1, 0);
Gui_DrawFont_GBK16(0, 50, BLACK, WHITE, "LED3 OFF");
//HAL_Delay(500);
}
}
/* USER CODE END 3 */
}
下一篇:STM32的启动模式
史海拾趣
|
菜鸟一个,开始研究嵌入式的Power Manager,有几个问题还没弄明白, 在内核目录下 1.\\kernel\\power与\\drivers\\base\\power有何区别? 2.\\drivers\\acpi同样是电源驱动,和以上的有何区别? 3.我们用的是PXA系列,/arch/arm/mach-pxa下如ipmc.c和p ...… 查看全部问答> |
|
我的是WINCE6.0的,现在我想写一个GPIO驱动,通过动态连接库来加载这个驱动,也就是说让这个GPIO驱动生成.DLL后,然后手动加载这个驱动来调试。 那我该建立怎么样的工程呢? 在WINCE5.0里提到在新建工程向导里,选择“WINCE Dynamic-Link Library ...… 查看全部问答> |
|
SEED-EXP430F5529开发板里面关于LCD液晶字符显示 大家有木有LCD的液晶字符取摸工具啊, 想要在SEED-EXP430F5529开发板上显示自己的logo,整了半天LCD上显示出来都是乱的。 // Display TI logo Dogs102x6_imageDraw(tiBug, 0, 16); // void Dogs102x6_imageDraw(const uint8_t IMA ...… 查看全部问答> |
|
本帖最后由 陌路绝途 于 2015-11-8 11:03 编辑 本系统通过LCD触屏上的按钮和指纹模块作为数据输入终端。在主界面下分别显示三个按钮,即“设置”、“指纹输入”(指纹图标)、“帮助”。各个按钮操作情况 ...… 查看全部问答> |
|
DE1-SoC板子上有个模拟视频输入接口,通过ADV7180模数转换后送入SOC。可以利用SOC实现视频压缩与处理,可能有两种方法: 1.通过ARM/NEON进行视频压缩(H.264/265) 2.通过FPGA程序进行视频压缩 有没有哪位大侠用过的谈谈经验. … 查看全部问答> |




