打印
[STM8]

发送HEX文件的程序

[复制链接]
363|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
morrisk|  楼主 | 2021-5-5 18:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教下  STM8单片机串口UART1发送16进制HEX文件的程序怎么写,例如发送 5A A5 08 83 00 18 01 04 57 0b b6,怎么写  不胜感激啊。回答的好有重谢

使用特权

评论回复
沙发
xxmmi| | 2021-5-5 18:49 | 只看该作者
void Init_UART1(void)  
{      
  CLK_PCKENR1 |= 0X04;  //使能USART1时钟   
   
  UART1_CR1=0x00;  
  UART1_CR2=0x00;  
  UART1_CR3=0x00;  
  // 必须先写BRR2  
  // 例如对于波特率位115200时,分频系数=16000000/115200=139  
  // 对应的十六进制数为008B,BBR1=08,BBR2=0B  
   
  UART1_BRR2=0x0B;  
  UART1_BRR1=0x08;  
   
  UART1_CR2=0x2c;//允许接收,发送,开接收中断  
}  

void SendChar(u8 dat)  
{  
  while((UART1_SR & 0x80)==0x00);  
  UART1_DR = dat;  
}

main()
{
  u8 a[] = {0x5A,0xA5,0x08,0x83,0x00,0x18,0x01,0x04,0x57,0x0b,0xb6};
  u8 i;
  Init_UART1();
  for(i=0; i<11; i++)
  {
    SendChar(a[i]);
  }
}

对楼主笑而不语

使用特权

评论回复
板凳
kangzj| | 2021-5-5 18:51 | 只看该作者
楼上很对,你直接发送就是了。

使用特权

评论回复
地板
gongche| | 2021-5-5 18:53 | 只看该作者
请问楼主不是要写串口程序吗?

使用特权

评论回复
5
gongche| | 2021-5-5 18:55 | 只看该作者
读取后的数据,直接放串口发出去就是的。

使用特权

评论回复
6
llljh| | 2021-5-5 18:58 | 只看该作者
定义一个buf  循环往buf里面填充数据就好啊,不难

使用特权

评论回复
7
dingy| | 2021-5-5 19:01 | 只看该作者
可以参考下正点原子的串口发送和接受程序

使用特权

评论回复
8
supernan| | 2021-5-5 19:03 | 只看该作者
直接发不就是了。

使用特权

评论回复
9
dengdc| | 2021-5-5 19:05 | 只看该作者

其实要看你接收后怎么处理,发送很容易

使用特权

评论回复
10
huangchui| | 2021-5-5 19:06 | 只看该作者
如果HEX是文本内容,那直接发送文本,接收文本就行了。

使用特权

评论回复
11
zhenykun| | 2021-5-5 19:08 | 只看该作者
如果是原数据,那接收后怎么保存,至关重要

使用特权

评论回复
12
morrisk|  楼主 | 2021-5-5 19:10 | 只看该作者

好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

评论回复
13
paotangsan| | 2021-6-1 18:53 | 只看该作者
好像需要转码吧

使用特权

评论回复
14
renzheshengui| | 2021-6-1 18:54 | 只看该作者
按照字符串进行发送?

使用特权

评论回复
15
wakayi| | 2021-6-1 18:55 | 只看该作者
改变一下发送方式呢

使用特权

评论回复
16
wowu| | 2021-6-1 19:08 | 只看该作者
直接以字符形式发送

使用特权

评论回复
17
xiaoqizi| | 2021-6-1 19:10 | 只看该作者
是不是需要转成代表他们的asc码啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

6879

帖子

2

粉丝