#申请原创# #有奖活动# #技术资源#
各位小伙伴们,本次实验做的是E103系列串口的打印。自发自收
烧录固件我用的是J-LINK与开发板的JTAG相连,JT串口的打印我用的是USB转串口连接PA9 PA10俩个脚,使用的是串口1打印。
具体代码如下:
#include "main.h"
#include "stdio.h"
#include "apm32e10x_usart.h"
volatile uint32_t tick = 0;
uint8_t txBuf[] = "Hello USART1 \r\n";
uint8_t zul_txBuf[] = "欢迎使用极海单片机\r\n";
void Delay(void);
int main(void)
{
uint8_t i;
GPIO_Config_T GPIO_ConfigStruct;
USART_Config_T USART_ConfigStruct;
APM_MINI_LEDInit(LED2);
APM_MINI_LEDInit(LED3);
RCM_EnableAPB2PeriphClock((RCM_APB2_PERIPH_T)(RCM_APB2_PERIPH_GPIOA | RCM_APB2_PERIPH_USART1));
GPIO_ConfigStruct.mode = GPIO_MODE_AF_PP;
GPIO_ConfigStruct.pin = GPIO_PIN_9;
GPIO_ConfigStruct.speed = GPIO_SPEED_50MHz;
GPIO_Config(GPIOA, &GPIO_ConfigStruct);
USART_ConfigStruct.baudRate = 115200;
USART_ConfigStruct.hardwareFlow = USART_HARDWARE_FLOW_NONE;
USART_ConfigStruct.mode = USART_MODE_TX;
USART_ConfigStruct.parity = USART_PARITY_NONE;
USART_ConfigStruct.stopBits = USART_STOP_BIT_1;
USART_ConfigStruct.wordLength = USART_WORD_LEN_8B;
USART_Config(USART1, &USART_ConfigStruct);
USART_Enable(USART1);
SysTick_Config(SystemCoreClock / 1000);
while(1)
{
Delay();
for(i = 0; i < sizeof(txBuf); i++)
{
while(USART_ReadStatusFlag(USART1, USART_FLAG_TXBE) == RESET);
USART_TxData(USART1, txBuf[i]);
}
for(i = 0; i < sizeof(zul_txBuf); i++)
{
while(USART_ReadStatusFlag(USART1, USART_FLAG_TXBE) == RESET);
USART_TxData(USART1, zul_txBuf[i]);
}
APM_MINI_LEDToggle(LED2);
APM_MINI_LEDToggle(LED3);
}
}
void Delay(void)
{
tick = 0;
while(tick < 500);
}
这个代码最关键的部分就是把你想要打印出的数据定义成数组形式,然后进行不断的输出打印。插上USB转串口会出现端口,实验现象如下:
好了各位小伙伴们,本次实验内容就这么多
|