完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
代码;将红色部分注释掉,才能用printf,不然只能用Send_Data_To_UART0发送。
void main (void) { Set_All_GPIO_Quasi_Mode; InitialUART0_Timer3(9600); set_P06;set_P07; SCON |= 0x50; set_ES; set_EA; printf ("\n succes"); Send_Data_To_UART0('1'); while(1); } void SerialPort0_ISR(void) interrupt 4 { /*************************/ if(TI) { TI=0;// clr_TI; } /*************************/ if(RI) { clr_RI; temp =SBUF; } } |
|
相关推荐
1个回答
|
|
|
可能是因为串口中断与printf函数的使用方式不兼容,导致程序卡住。解决方法可以尝试使用移植到N76E003芯片的printf函数,或者使用其他方式将数据发送到串口,比如使用Send_Data_To_UART0函数。
以下是一个使用移植printf函数的示例代码: #include "N76E003.h" #include "SFR_Macro.h" #include "Function_define.h" #include "Common.h" #include void main(void) { Set_All_GPIO_Quasi_Mode(); InitialUART0_Timer3(9600); set_P06;set_P07; SCON |= 0x50; set_ES; set_EA; while(1) { printf("Hello World!n"); delay_ms(1000); } } 在上面的代码中使用了printf函数来输出字符串,需要注意的是修改了头文件的include路径,使用的是标准C语言库的头文件,需要通过工具将C代码生成二进制文件,再将其烧录到N76E003芯片中。 如果不想使用移植printf函数,可以使用Send_Data_To_UART0函数来发送数据,示例代码如下: void main(void) { Set_All_GPIO_Quasi_Mode(); InitialUART0_Timer3(9600); set_P06;set_P07; SCON |= 0x50; set_ES; set_EA; while(1) { Send_Data_To_UART0("Hello World!n", 13); delay_ms(1000); } } 在上面的代码中使用了Send_Data_To_UART0函数来发送字符串,需要注意的是第二个参数为字符串长度,需要根据实际情况修改。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
1874 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4770 浏览 0 评论
4251 浏览 9 评论
3840 浏览 16 评论
4414 浏览 1 评论
4236浏览 3评论
2398浏览 0评论
3417浏览 0评论
1177浏览 0评论
2868浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 22:35 , Processed in 0.664282 second(s), Total 79, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
614