久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2313|回復: 1
收起左側

stm8s003單片機外部中斷和串口例程 iar工程文件

[復制鏈接]
ID:800716 發表于 2021-1-14 11:43 | 顯示全部樓層 |閱讀模式
這是STM8s003 外部中斷的簡單例程,當有外部中斷時 串口輸出客戶需要的 十六進制數據。

單片機源程序如下:
  1. /* Includes ------------------------------------------------------------------*/
  2. #include "stm8s.h"
  3. #include "LED.h"

  4. /* Private defines -----------------------------------------------------------*/
  5. /* Private function prototypes -----------------------------------------------*/
  6. /* Private functions ---------------------------------------------------------*/
  7. #define  IWDG_500MS_REST  (uint8_t)250
  8. //#define  IWDG_400MS_REST  (uint8_t)200
  9. //#define  IWDG_300MS_REST  (uint8_t)150
  10. //#define  IWDG_250MS_REST  (uint8_t)125
  11. //#define  IWDG_200MS_REST  (uint8_t)100
  12. //#define  IWDG_100MS_REST  (uint8_t)50
  13. //#define  IWDG_50MS_REST   (uint8_t)25
  14. //#define  IWDG_4MS_REST    (uint8_t)2
  15. //void Send(uint8_t dat);
  16. uint8_t cmd[132]={0x26,0x26,0x84,0x00,0x0B,0x40,0x26,0x01,0x31,0x32,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  17.                   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  18.                   0x00,0x00,0x00,0x00,0x31,0x32,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x35,0x30,0x35,0x32,
  19.                   0x35,0x31,0x39,0x38,0x32,0x31,0x32,0x30,0x33,0x33,0x35,0x31,0x39,0x07,0xE4,0x0A,0x09,0x29,
  20.                   0x0B,0x27,0x15,0x39,0x2C,0x00,0x00,0x02,0x31,0x32,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  21.                   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  22.                   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  23.                   0x00,0x00,0xC8,0x00,0x0D,0x0A};


  24. void Delay(uint16_t nCount)
  25. {
  26.   /* Decrement nCount value */
  27.   while (nCount != 0)
  28.   {   
  29.     nCount--;
  30.   }
  31. }

  32. void Init_UART1(void)
  33. {
  34.         UART1_DeInit();
  35.         UART1_Init((u32)115200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
  36.         
  37.         UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);

  38. //        UART1_Cmd(ENABLE);
  39. }
  40. void Send(uint8_t dat)
  41. {
  42.   while(( UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET));
  43.         
  44.                 UART1_SendData8(dat);
  45.         
  46. }
  47. void send_cmd(uint8_t *cmd,uint8_t len)
  48. { uint8_t i;
  49.   for(i=0;i<len;i++)
  50.   {
  51.     Send(cmd[i]);
  52.   }

  53. }


  54. void main(void)
  55. {
  56. uint8_t i=0;
  57.                 /* Initialize I/Os in Output Mode */
  58.                 CLK_DeInit();
  59.                 CLK_HSICmd(ENABLE);//啟用內部高速振蕩器(HSI?16MHz)?
  60.                 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//主時鐘=16MHZ/1=16MHz?
  61.                 CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);//CPU時鐘=主時鐘/1=18MHZ
  62.                
  63.                 GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);
  64.                 GPIO_Init(KEY_GPIO_PORT, (GPIO_Pin_TypeDef)KEY_GPIO_PINS, GPIO_MODE_IN_PU_IT );
  65.                  
  66.                 EXTI_SetExtIntSensitivity((EXTI_Port_TypeDef)EXTI_PORT_GPIOD, EXTI_SENSITIVITY_FALL_LOW);
  67.                 ITC_SetSoftwarePriority(ITC_IRQ_PORTD, ITC_PRIORITYLEVEL_2); //開啟中斷,中斷優先級設置為高 button = higher sw priority
  68.                // GPIO_WriteHigh(KEY_GPIO_PORT, KEY_GPIO_PINS);
  69.                 //CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
  70.                 Init_UART1();
  71.                 enableInterrupts();
  72.                 Delay(0xffff);
  73.                 Delay(0xffff);
  74.                 Delay(0xffff);
  75.                  Delay(0xffff);
  76.                   Delay(0xffff);
  77.                    Delay(0xffff);
  78.                     Delay(0xffff);
  79.                     Delay(0xffff);
  80.                     Delay(0xffff);

  81.                     Delay(0xffff);
  82.                 //enableInterrupts();
  83.                     //enableInterrupts();
  84.                     //Init_UART1();
  85.                 IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//同意操作獨立看門狗
  86.                 IWDG_SetPrescaler(IWDG_Prescaler_128);//看門狗預分頻
  87.                 IWDG_SetReload(IWDG_500MS_REST);//設置看門狗復位時間
  88.                 IWDG_Enable();//啟動獨立看門狗
  89.                 //send_cmd(cmd,132);
  90.                 //enableInterrupts();
  91.                
  92. /* Infinite loop */
  93.   while (1)
  94.   {
  95.     GPIO_WriteHigh(LED_GPIO_PORT, LED_GPIO_PINS);
  96.     IWDG_ReloadCounter();//看門狗復位 正常使用時不想發生看門狗復位,就運行
  97.    // GPIO_WriteHigh(KEY_GPIO_PORT, KEY_GPIO_PINS);
  98.     /*
  99.     if(((GPIOD->IDR & (uint8_t)KEY_GPIO_PINS) ? SET : RESET)==RESET)
  100.     {
  101.       GPIO_WriteLow(LED_GPIO_PORT, LED_GPIO_PINS);
  102.       
  103.       Delay(0xff);
  104.       if(((GPIOD->IDR & (uint8_t)KEY_GPIO_PINS) ? SET : RESET)==RESET)
  105.       {
  106.         send_cmd(cmd,132);
  107.         
  108.       }
  109.       Delay(0xffff);
  110.       Delay(0xffff);
  111.      
  112.     }
  113.     //GPIO_WriteHigh(KEY_GPIO_PORT, KEY_GPIO_PINS);
  114.     */
  115.         
  116.   }
  117.   
  118.   
  119. }

  120. #ifdef USE_FULL_ASSERT

  121. /**
  122.   * @brief  Reports the name of the source file and the source line number
  123.   *   where the assert_param error has occurred.
  124.   * @param file: pointer to the source file name
  125.   * @param line: assert_param error line source number
  126.   * @retval : None
  127.   */
  128. void assert_failed(u8* file, u32 line)
  129. {
  130.   /* User can add his own implementation to report the file name and line number,
  131.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  132.   /* Infinite loop */
  133.   while (1)
  134.   {
  135.   }
  136. }
  137. #endif

  138. /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
復制代碼

所有資料51hei提供下載:
UARTR.7z (121.9 KB, 下載次數: 38)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:81138 發表于 2021-1-25 23:20 來自手機 | 顯示全部樓層
沙發吖
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品1区2区3区 成人黄页在线观看 | 国产精品久久久久无码av | 婷婷激情五月网 | 97天天干 | 黄网站免费在线看 | 99精品电影 | 毛片一区二区 | 亚洲第一在线 | 欧美一区二区三区四区五区无卡码 | av免费网址 | 久久精品亚洲国产奇米99 | 午夜小视频在线播放 | 一区二区精品视频 | 性国产xxxx乳高跟 | 在线观看亚洲专区 | 91久久久久久久久久久久久 | 美女久久视频 | 欧美一级黄带 | 在线中文字幕视频 | 一级做a爰片性色毛片16 | 久久久无码精品亚洲日韩按摩 | 亚洲最大成人综合 | 国产精品美女久久久 | 亚洲成年在线 | 久久99精品久久久 | 亚洲成人av在线播放 | 黄色a级一级片 | 蜜桃av人人夜夜澡人人爽 | 亚洲精品一区二区三区免 | 色就干 | 无吗视频 | 91精品一区 | 成人在线看片 | 国产精品久久久久久影院8一贰佰 | 亚洲一区二区三区四区在线观看 | 国产一区二区在线视频 | 久久久精品网站 | 久久精品国产久精国产 | 欧美日韩精品一区 | 日韩字幕一区 | 九九av|