历史上的今天
今天是:2025年06月17日(星期二)
2019年06月17日 | STM32F4CubeMX学习笔记之USART1
2019-06-17 来源:eefocus
开发板:普中PZ6808L-F4
开发环境:keil5+CnbeMx
硬件资源:2个LED 1个串口
功能说明:LED2闪烁表示系统在运行 LED1通过串口控制
CnbeMx配置为



int fputc(int ch,FILE *f)//重新定义串口输出使用printf功能
{
uint8_t temp[1]={ch};
HAL_UART_Transmit(&huart1,temp,1,2);
return(ch);
}
// 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx
int fgetc(FILE * f)
{
uint8_t ch = 0;
HAL_UART_Receive(&huart1,&ch, 1, 0xffff);
return ch;
}
int main(void)
{
uint32_t i;
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
printf("Hello Worldrn");
HAL_UART_Receive_IT(&huart1,&RXBUF[0],1);
while (1)
{
// ch=getchar();
if(strstr((const char*)RxBuff,"openled1"))
{
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET);
}
if(strstr((const char*)RxBuff,"closeled1"))
{
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET);
}
if(++i>1000000)
{
i=0;
HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
}
}
}
// 函数功能: 串口接收完成回调函数
uint8_t res;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)
{
if(UartHandle==&huart1)
{
// HAL_UART_Transmit(&huart1,&RXBUF[0],1,0);
HAL_UART_Receive_IT(&huart1,&RXBUF[0],1);
if(RXBUF[0]!=0x0a)RxBuff[res++]=RXBUF[0];
else
{
res=0;
printf("接收到字符为:%sn",RxBuff);
}
}
}
史海拾趣
|
Altium Designer 6.0 的所有电路设计工作都必须在 Design Explorer (设计管理器)中进行,同时设计管理器也是 Altium Designer 6.0 启动后的主工作接口。设计管理器具有友好的人机接口,而且设计功能强大,使用方便,易于上手。因此本章将对设计管 ...… 查看全部问答> |
|
TFTP: Desktop losing ACK, block number =3(无法传输nk) pb通过以太网无法传输nk,串口调试信息 TFTP: Desktop losing ACK, block number = 3 ...… 查看全部问答> |
|
#define TOUCH_MAX_X 1000 // 950 #define TOUCH_MIN_X 30 // 90 #define TOUCH_MAX_Y 980 // 960 // 910 #define TOUCH_MIN_Y 30 // 70 //50 #define TOUCH_X 800 #define TOUCH_Y 480 VOID Touch_CoordinateConversion(INT *px, INT ...… 查看全部问答> |
|
开发的硬件是mips架构的CPU~ 郁闷了~在dos下编bootrom.bin,烧进flash后通过点灯观察运行状况 在romStart函数中复制rom代码到ram已经没问题,之后可以成功调用rom中的点灯程序或者已经复制到ram中的点灯程序拷贝。 但是解压缩就是过不去~ 想问 ...… 查看全部问答> |
|
我在VC下写 char szDrive[256]={0}; char szDir[256]={0}; char szPath[256]={0}; _splitpath(szFileName,szDrive,szDir,NUL ...… 查看全部问答> |




