一、硬件介绍 野火的STM32F103ZET6开发板,三个led对应的IO为PB0,PB1,PB5,低电平点亮 单片机的USART1对应的PA9—TX;PA10—RX 注意USB转TTL模块的TX/RX和单片机的TX/RX要交叉互联,而且GND也要接在一起,VCC不用接
一个USB转TTL模块
二、目的介绍 首先开机三个led均处于熄灭状态,然后打开串口调试助手 发送0xAA后,LED0点亮,LED1,LED2熄灭 发送0xBB后,LED1点亮,LED0,LED1熄灭 发送0xCC后,LED2点亮,LED0,LED1熄灭
图1
|
图2
|
图3
|
图4
|
图5
|
图6
|
三、代码简介
void USART1_IRQHandler(void)
{
u8 Res;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART1);
if(Res==0xAA)
{
LED0=0;
LED1=1;
LED2=1;
}
if(Res==0xBB)
{
LED0=1;
LED1=0;
LED2=1;
}
if(Res==0xCC)
{
LED0=1;
LED1=1;
LED2=0;
}
}
}
int main(void)
{
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
while(1)
{
}
}
PS:这只是最简单的串口控制LED,实际应用的话会非常不严谨,说几个简单的问题吧,如果发送的数据是0xAAAABBCC,最后显示的效果和发送CC是一样的,即没有对串口发送数据的长度和内容做限制,程序会以最后发送的数据为准。
百度云链接:超级简单的标准库工程文件和STM32F103ZET6核心板原理图 链接:https://pan.baidu.com/s/1GnbhCy6n1SV6Cnm04WFesg 提取码:k7zp
|