本帖最后由 strang 于 2022-5-30 19:24 编辑
参加活动有幸得到一块Geehy APM32E103ZE MIIN 开发板,板子收到有一段时间了,由于好多事给耽误没来得及写测评
APM32E103xE工业级增强型系列MCU,产品基于32 位Arm® Cortex®-M3内核内核架构,在APM32F103xE系列上进行升级,运算频率可达120MHz,供电电压在2.0V~3.6V,其工作温度范围可覆盖-40℃~+105℃,帮助产品在工业级温度场景下稳定运行。芯片ESD等级达5KV,满足工业级高可靠性的产品性能标准需求。
详细介绍和资料下载请到官网:https://www.geehy.com/apm32?id=45
看坛友写了很多测评,我就测试一下USART2。
看了下数据手册,PA2和PA3默认复用功能作为USART2的发送端和接收引脚。
接线图:
初始化USART2:
USART2挂载APB1上
用官方提供的BSP包测试
main.c文件:
uint8_t txBuf[100] = "HELLO Geehy APM32E103ZE MIIN \r\n";
/***************** USART2初始化 **********************/
void USART2_InitFunc(void)
{
GPIO_Config_T GPIO_ConfigStruct;
USART_Config_T USART_ConfigStruct;
RCM_EnableAPB2PeriphClock((RCM_APB2_PERIPH_T)RCM_APB2_PERIPH_GPIOA );
RCM_EnableAPB1PeriphClock((RCM_APB1_PERIPH_T)RCM_APB1_PERIPH_USART2);
GPIO_ConfigStruct.mode = GPIO_MODE_AF_PP;
GPIO_ConfigStruct.pin = GPIO_PIN_2;
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(USART2, &USART_ConfigStruct);
USART_Enable(USART2);
}
/***************** 发送一个字节 **********************/
void Usart_SendByte( USART_T * pUSARTx, uint8_t ch)
{
/* 发送一个字节数据到USART */
USART_TxData(pUSARTx,ch);
/* 等待发送数据寄存器为空 */
while (USART_ReadStatusFlag(pUSARTx, USART_FLAG_TXBE) == RESET);
}
/***************** 发送字符串 **********************/
void Usart_SendString( USART_T * pUSARTx, char *str)
{
unsigned int k=0;
do
{
Usart_SendByte( pUSARTx, *(str + k) );
k++;
} while(*(str + k)!='\0');
/* 等待发送完成 */
while(USART_ReadStatusFlag(pUSARTx,USART_FLAG_TXC)==RESET)
{}
}
/***************** 主函数 **********************/
int main(void)
{
uint8_t i;
APM_MINI_LEDInit(LED2);
APM_MINI_LEDInit(LED3);
USART2_InitFunc();
TMR1_InitFunc();
while(1)
{
if(tick>=500)
{
tick=0;
APM_MINI_LEDToggle(LED2);
APM_MINI_LEDToggle(LED3);
Usart_SendString(USART2,(char*)txBuf);
}
}
}
|