今天22号..呵呵 网站大体框架做完了。。

博主在假期结束之际反思过去的时间没有充分利用,并决定从下学期开始为考研做准备。计划周六搬回显示器,提醒自己要坚持写博客来时刻反省。

 好累啊。。。

今天晚上 网站基本上做完了。眼看就要开学了。。同学们都慢慢的都回学校了。。心慌慌的。。一个假期,什么东西都没搞好。。哎。。

开学了。。。我呢! 既然选择了,就要努力了。。。下学期起我就要加入考研的行列了。

我会努力的。。加油,加油。

星期6到六楼把显示器搬回来。。。向自己的目标前进吧。以后要记得写blog哦。每天写blog对自己有好处。时刻反省自己。

stm32f103zet6通过串口下发指令控制LED的大体框架如下: #### 1. 初始化部分 - **GPIO初始化**:将LED连接的GPIO引脚配置为输出模式,以便控制LED的亮灭。 ```c #include "stm32f10x.h" void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; // 使能GPIOA时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 配置PA5为推挽输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); } ``` - **USART初始化**:初始化串口,配置波特率、数据位、停止位等参数,并使能串口。 ```c void USART1_Configuration(void) { USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; // 使能GPIOA和USART1时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE); // 配置USART1 Tx (PA.9)为复用推挽输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置USART1 Rx (PA.10)为浮空输入 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置USART1 USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); // 使能USART1 USART_Cmd(USART1, ENABLE); } ``` #### 2. 中断处理部分 编写串口接收中断处理函数,当接收到串口数据时,触发中断,在中断处理函数中判断接收到的指令并控制LED灯的亮灭。 ```c void USART1_IRQHandler(void) { if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { uint8_t data = USART_ReceiveData(USART1); if (data == '1') // 接收到指令 '1',点亮LED { GPIO_SetBits(GPIOA, GPIO_Pin_5); } else if (data == '0') // 接收到指令 '0',熄灭LED { GPIO_ResetBits(GPIOA, GPIO_Pin_5); } USART_ClearITPendingBit(USART1, USART_IT_RXNE); } } ``` #### 3. 主函数部分 在主函数中,调用初始化函数并使能串口接收中断。 ```c int main(void) { GPIO_Configuration(); USART1_Configuration(); // 使能USART1接收中断 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); NVIC_EnableIRQ(USART1_IRQn); while (1) { // 主循环可以处理其他任务 } } ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值