【天问Block】STC15F2K60S2串口输出和led闪烁
本示例基于天问Block开发平台编译。(天问Block编程开发平台是基于开源的交叉编译器SDCC来进行编译的)
- 自制开发板《【开源STC15开发板】STC15F2K60S2开发板》
- 基于SDCC交叉编译器的还有VSCode平台上的PlatformIO开发也是基于这个编译器,这里就不多做介绍了。
采用字符串形式编程,对于图形化编程实在看不下去,这纯属个人的偏好。
实例代码
#define SYS_CLK 11059200L//设置定时器、串口频率参数
#include <STC15X.h>
#include "lib/STC15_UART.h"
#include "lib/STC15_delay.h"
uint8 rec = 0;
void UART_R(void) interrupt 4 using 1{
UART1_CLEAR_RX_FLAG;
rec = SBUF;
if(rec == 0x32){
uart_putchar(UART_1, 0x31);//串口单个字符输出
}
}
void setup()
{
/*****本案例程序说明**************************/
//本案例可以通过软件的串口监视器,发送数据,可以查看
//回传数据,发送2,回传1
/*********************************************/
uart_init(UART_1, UART1_RX_P30, UART1_TX_P31, 9600, TIM_2);//初始化串口
EA = 1;
ES = 1;
P0M1 &= 0xFE;
P0M0 |= 0x01; //P0.0(推挽)
}
void loop()
{
uart_putstr(UART_1,"hello world \n");//字符串打印
delay(500);
uart_putstr(UART_1,"perseverance \n");
P1_0=!P1_0;//让P10口的电平状态翻转
}
void main(void)
{
setup();
while(1){
loop();
}
}