标题:
stm32单片机串口发送16进制数的方法分享含程序
[打印本页]
作者:
jinhua1916
时间:
2025-1-18 08:15
标题:
stm32单片机串口发送16进制数的方法分享含程序
stm32单片机串口发送16进制数的方法分享含程序;按下按钮 key0后程序输出16进制数组。
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include <stdio.h>
void UART_Send_Hex(uint8_t hex)
{
int i;
char buffer[2];
sprintf(buffer,"%02X",hex);
for( i=0;i<2;i++)
{i++;
USART_SendData(USART1,buffer[i]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==0);
}
}
int main(void)
{
uint8_t DATA[4]={0xFE,0x00,0x01,0XFF};
uint8_t hex_data=0XFE;
uint8_t hex_data1=0x00;
uint8_t hex_data2=0x01;
uint8_t hex_data3=0xFF;
u8 t=0;
u16 times=0;
LED_Init();
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为115200
//LED_Init(); //LED端口初始化
KEY_Init(); //初始化与按键连接的硬件接口
LED0=0;
while(1)
{
LED0=0;
delay_us(1000);
LED0=0;
//KEY_Scan(0);
// UART_Send_Hex(hex_data);
t=KEY_Scan(0); //得到键值
switch(t)
{
case KEY0_PRES:
{
int i;
delay_us(1000);
for(i=0;i<4;i++)
{
USART1->DR=DATA[i];
while((USART1->SR&0X40)==0);
LED0=1;
}
}
}
}
复制代码
原理图: 无
仿真: 无
代码:
代码.7z
(183.89 KB, 下载次数: 0)
2025-1-18 14:45 上传
点击文件名下载附件
stm32单片机串口发送16进制数的方
阅读权限: 50
下载积分: 黑币 -5
作者:
jinhua1916
时间:
2025-1-18 08:18
串口波特率9600,8位,无校验。程序里面可根据自己需要修改。按钮使用的是PA8。
作者:
jinhua1916
时间:
2025-1-24 18:41
发现一个问题;发送数组的时候第一个数据会丢失;在发送数据前需要先检查发送是否为空;case KEY0_PRES:
{
int i;
delay_us(1000);
for(i=0;i<4;i++)
{
USART1->DR=DATA[i];
while((USART1->SR&0X40)==0);
LED0=1;
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1