#申请原创# #有奖活动# #技术资源#
各位小伙伴们,本次实验做的是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转串口会出现端口,实验现象如下:

好了各位小伙伴们,本次实验内容就这么多
|